我一直遇到麻烦的家庭作业问题......
我需要将用户输入字符串作为产品类别。如果用户输入多个单词,我只需要输入第一个单词。
规定:我不能使用'if'语句。
这是我到目前为止所拥有的内容,但如果只键入一个单词则会失败。
Scanner scan = new Scanner (System.in);
System.out.println ("Enter a noun that classifies the"
+ " type of your product:");
String noun = scan.nextLine();
int n = noun.indexOf(" ");
String inputnoun = noun.substring(0,n);
答案 0 :(得分:4)
使用string.split()
Scanner scan = new Scanner (System.in);
System.out.println ("Enter a noun that classifies the"
+ " type of your product:");
String noun = scan.nextLine();
String inputnoun = noun.split(" ")[0];
答案 1 :(得分:3)
您可以使用scan.next()
来获取第一个字。
答案 2 :(得分:1)
字符串类中的方法split(String regex)
将返回在正则表达式字符串上拆分的字符串数组。
String test = "Foo Bar Foo Bar"
String[] array = test.split(" ");
//array is now {Foo, Bar, Foo, Bar}
从那里你可以弄清楚如何获得第一个单词。
下次遇到困难时,Java API pages对查找新方法非常有帮助。
答案 3 :(得分:0)
您可以使用String[] array = noun.split("\\s+")
在空格之间进行拆分,然后使用array[0]
返回第一个单词。
答案 4 :(得分:0)
而不是操纵整个输入String,另一种方法是使用delimiter
类的Scanner
:
Scanner scan = new Scanner(System.in);
// Following line is not mandatory as the default matches whitespace
scan.useDelimiter(" ");
System.out.println("Enter a noun that classifies the"
+ " type of your product:");
String noun = scan.next();
System.out.println(noun);
请注意,我们使用的是next()
而不是nextLine()
的Scanner类。