Java scan.nextLine不会扫描整个String,只扫描第一行

时间:2017-06-03 14:17:48

标签: java string java.util.scanner

编辑:抱歉,我更改了代码以反映我的问题。我尝试过使用scan.nextLine()并且它无法正常工作,这对我来说很奇怪。

我正在尝试扫描以下字符串并保存到名为"推文的字符串变量中。" :

" #typ offer; #det免费必备用品4个evacs宠物。 #loc 2323年第55届,巨石; #lat 40.022; #lng -105.226;"

然而,当我打印最终的推文字符串时,它只保存第一行,一直到#loc。它不包括2323年第55个巨石; #lat 40.022; #lng -105.226;"字符串的一部分。还有什么东西除了nextLine()我应该使用??这是我的代码和输出。

Scanner scan = new Scanner(System.in);  
    String tweet = null;
    String type, detail, location, latitude, longitude = null;

    int start, finish = 0;

    tweet = scan.nextLine();
    System.out.println(tweet);

我得到的输出是:" #typ offer; #det免费必备用品4个evacs宠物。 #loc

然而它缺少字符串的第二部分。可能是一个非常简单的修复,但感谢先进的帮助。

4 个答案:

答案 0 :(得分:0)

您好像在使用scan.next();,而不是scan.nextLine()。也许这是一个错字,但如果这是代码,请尝试更改它。

答案 1 :(得分:0)

使用

tweet = scan.nextLine();

它会起作用。

答案 2 :(得分:0)

if方法从此扫描程序中找到并返回下一个完整的标记(直到它到达它将结束的第一个空格)。

输出将是:

scan.next();

您需要使用"#typ

如果您使用scan.nextLine();输出将是:

nwxtLine()

阅读doc

答案 3 :(得分:0)

您正在使用next()来提供下一个令牌。您应该使用的是nextLine(),它将为您提供全部线路。

编辑:

你说使用nextLine()无效,这很奇怪,因为它有效。你确定你没有复制和粘贴句子吗?也许它有CRLF。试着写下这句话。