我已经看到了与此问题类似的问题,Stack Overflow上的答案似乎并不能解决问题。我听说您需要使用use.Delimeter
,但是,之前我从未使用它,并想知道如何使用它来排除用户输入的字符串中的标点符号。分配提示问题在这里:
更改CountWords程序(代码清单3.10),使其在字符数中不包含标点字符。提示:您必须更改StringTokenizer类使用的分隔符集。
清单3.10:
import java.util.Scanner;
import java.util.StringTokenizer;
public class ThreeEight {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int wordCount = 0, characterCount = 0;
String line, word;
StringTokenizer tokenizer;
System.out.println("Please enter text (type DONE to quit):");
line = scan.next();
while (!line.equals("DONE")) {
tokenizer = new StringTokenizer(line);
while (tokenizer.hasMoreTokens()) {
word = tokenizer.nextToken();
wordCount++;
characterCount += word.length();
}
line = scan.next();
}
System.out.println("Number of words: " + wordCount);
System.out.println("Number of characters: " + characterCount);
}
}
输出:
请输入文字(输入DONE退出):
你好,世界! @#$%^&安培; ():“<>〜/ \
DONE
字数:3
字符数:29
正如您所看到的,它不会计算标点符号,我会用什么代码来排除标点符号?我使用use.Delimeter
,但它说这是一种无效的方法。