3.编写一个CashRegister类,其中包含如下属性和方法:(1)属性:小票,分隔符(自己选择-一个分隔符),正则表达式处理后的结果(以上皆为String类),字符串分割结果(StringTokenizer 类)(2)方法:①构造器②相关属性的setter③regexProcess 方法:定义-一个正则表达式,用于匹配所有非数字字符,并使用相关方法(replaceAll()) 将小票中所有非数字字符替换成分隔符,并将结果保存到对应属性中,然后调用相关setter初始StringTokenizer
时间: 2023-11-28 16:47:30 浏览: 73
下面是一个示例实现:
```java
import java.util.StringTokenizer;
public class CashRegister {
private String receipt;
private String delimiter;
private String regexProcessed;
private StringTokenizer tokenizer;
public CashRegister(String receipt, String delimiter) {
this.receipt = receipt;
this.delimiter = delimiter;
regexProcess();
}
public void setReceipt(String receipt) {
this.receipt = receipt;
regexProcess();
}
public void setDelimiter(String delimiter) {
this.delimiter = delimiter;
regexProcess();
}
public void regexProcess() {
String regex = "\\D+";
this.regexProcessed = receipt.replaceAll(regex, delimiter);
tokenizer = new StringTokenizer(regexProcessed, delimiter);
}
}
```
这个 `CashRegister` 类有四个属性:`receipt` 表示小票,`delimiter` 表示分隔符,`regexProcessed` 表示经过正则表达式处理后的结果,`tokenizer` 表示用于分割字符串的 `StringTokenizer` 对象。
它有一个构造器,接受两个参数:小票和分隔符。构造器会调用 `regexProcess` 方法来进行正则表达式处理和字符串分割。
它还有三个 setter 方法分别用于设置小票、分隔符和进行相应的正则表达式处理和字符串分割。
`regexProcess` 方法使用正则表达式将小票中所有非数字字符替换成分隔符,并将结果保存到对应属性中,然后调用相关 setter 初始化 `StringTokenizer` 对象。
阅读全文