Java 扫描仪对象-拆分字符串
我正在尝试使用Scanner对象将字符串输入写入文本文件 字符串输入是电影名称。但是,如果文件名有两个单词,则scanner对象只接受第一个单词 我需要这两个字。这是我的密码:-Java 扫描仪对象-拆分字符串,java,java.util.scanner,Java,Java.util.scanner,我正在尝试使用Scanner对象将字符串输入写入文本文件 字符串输入是电影名称。但是,如果文件名有两个单词,则scanner对象只接受第一个单词 我需要这两个字。这是我的密码:- Scanner new_dvd_info = new Scanner(System.in); System.out.println("Enter name of new film");` String film_name = new_dvd_info.next(); 有人能帮
Scanner new_dvd_info = new Scanner(System.in);
System.out.println("Enter name of new film");`
String film_name = new_dvd_info.next();
有人能帮我解释一下吗?用
new\u dvd\u info.nextLine()
替换new\u dvd\u info.nextLine()
来抓取整行。用new\u dvd\u info.nextLine()
替换new\u dvd\u info.nextLine()
来抓取整行。扫描器的文档。方法说
Finds and returns the next complete token from this scanner.
A complete token is preceded and followed by input that matches
the delimiter pattern. This method may block while waiting for input
to scan, even if a previous invocation of {@link #hasNext} returned
<code>true</code>.
所以它将一直拾取,直到在您的案例中找到“”作为分隔符。您可以使用扫描仪上的下一行方法获取整个字符串new\u dvd\u info.nextLine()
,或者您可以像这样循环:
while(scanner.hasNext) {
//append to string using scanner.next();
}
Scanner.next()方法的文档说明
Finds and returns the next complete token from this scanner.
A complete token is preceded and followed by input that matches
the delimiter pattern. This method may block while waiting for input
to scan, even if a previous invocation of {@link #hasNext} returned
<code>true</code>.
所以它将一直拾取,直到在您的案例中找到“”作为分隔符。您可以使用扫描仪上的下一行方法获取整个字符串new\u dvd\u info.nextLine()
,或者您可以像这样循环:
while(scanner.hasNext) {
//append to string using scanner.next();
}
这里的问题是您使用的是new\u dvd\u info.next()
,它返回第一个完整的令牌。如果遇到任何分隔符,如空格
,它会将下一个单词视为单独的标记
Scanner sc=new Scanner(System.in);
String s=sc.next();
System.out.println(s);
在上面的代码中,如果您将电影名称命名为Age of Ultron
,它将只返回标记Age
,因为标记Age之后有一个分隔符
如果希望完整的字符串
用分隔符分隔,则应使用
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
System.out.println(s);
这将为您提供所需的输出,即Ultron的年龄这里的问题是您正在使用新dvd\u info.next()
,它返回第一个完整的令牌。如果遇到任何分隔符,如空格
,它会将下一个单词视为单独的标记
Scanner sc=new Scanner(System.in);
String s=sc.next();
System.out.println(s);
在上面的代码中,如果您将电影名称命名为Age of Ultron
,它将只返回标记Age
,因为标记Age之后有一个分隔符
如果希望完整的字符串
用分隔符分隔,则应使用
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
System.out.println(s);
这将为您提供所需的输出,即Ultron时代扫描仪#next()
仅返回空格之前的内容。您应该使用Scanner#nextLine
读取整行,然后使用String#split
Scanner#next()
只返回空格前面的内容。您应该使用Scanner#nextLine
来读取整行,然后使用String#split
。