我目前正在使用StringTokennizer类按照定义的分隔符将字符串拆分成不同的标记。
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());
}
}
} 我的疑问是,同样的事情也可以通过scanner类来实现...!!这是使用scanner类的正确方法吗?因为我正在阅读Scanner类,它允许您从循环中标记数据,这允许您在任何时候想要停止...我已经尝试了以下事情,但它不工作...please建议我..!
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());
}
}
}发布于 2012-04-08 13:12:24
使用scanner.next()而不是scanner.nextLine()返回下一个令牌,后者返回下一个整行(并且您的输入只有一个)。当然,您会希望在while中使用hasNext(),而不是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());
}https://stackoverflow.com/questions/10060533
复制相似问题