我正在尝试逐字读取输入,但无法弄清楚如何将扫描仪的分隔符设置为空格和标点符号,除了 ' (单引号)。 这是我得到的
BufferedReader input;
String line;
Scanner sc;
String word;
try {
input = new BufferedReader(new FileReader(path));
while (input.ready()) {
line = input.readLine();
System.out.println("Current Line: " + line);
sc = new Scanner(line);
sc.useDelimiter("\\W\\s^\'");
//...
}
}
//...
最佳答案
我想你的意思是?
sc.useDelimiter("\\W\\s^\'");
我会用
sc.useDelimiter("[^\\w']+");
String line= "Hello, world!\n 'Computer\n \n Science'\n Hell\n";
System.out.println(Arrays.toString(line.split("[^\\w']+")));
打印
[Hello, world, 'Computer, Science', Hell]
String line= "Hello, world!\n 'Computer\n \n Science'\n Hell\n";
Scanner scan = new Scanner(line);
scan.useDelimiter("[^\\w']+");
while(scan.hasNext())
System.out.print("|"+scan.next());
System.out.println("|");
打印
|Hello|world|'Computer|Science'|Hell|
关于java - java中扫描仪的分隔符和正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9325184/