我目前正在使用StringTokennizer类将String拆分为不同的标记,如定义的分隔符所示。
public class App {
public static void main(String[] args) {
String str = "This is String , split by StringTokenizer, created by Neera";
StringTokenizer st = new StringTokenizer(str);
System.out.println("---- Split by comma ',' ------");
StringTokenizer st2 = new StringTokenizer(str, ",");
while (st2.hasMoreElements()) {
System.out.println(st2.nextElement());
}
}
}
我的查询是,同样的事情也可以通过扫描仪类来实现...... !!这是使用扫描仪类的正确方法,因为我正在读取扫描程序类允许您从循环内标记数据,这允许您随时停止...我已经尝试了以下的事情,但它没有'工作......请告诉我.. !!!
public class App1 {
public static void main(String[] args)
{
Scanner scanner = new Scanner("This is String , split by StringTokenizer, created by Neera").useDelimiter(", ");
while (scanner.hasNextLine()) {
System.out.println(scanner.nextLine());
}
}
}
答案 0 :(得分:0)
使用scanner.next()
返回下一个令牌,而不是scanner.nextLine()
,它返回下一个完整行(并且您的输入只有一个)。当然,您希望在hasNext()
而不是while
中使用hasNextLine()
。
回复您的评论:
您的代码有一个语法错误,我最初用于拼写错误并在问题中进行了更正。你在写:
while (scanner.hasNext()) ;
System.out.println(scanner.next());
哪种格式正确应该告诉你实际发生了什么:
while (scanner.hasNext())
; // empty statement
System.out.println(scanner.next());
应该是:
while (scanner.hasNext()) {
System.out.println(scanner.next());
}