Java:只取用户输入字符串的第一个单词

时间:2015-02-16 04:43:58

标签: java string

我一直遇到麻烦的家庭作业问题......

我需要将用户输入字符串作为产品类别。如果用户输入多个单词,我只需要输入第一个单词。

规定:我不能使用'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);

5 个答案:

答案 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类。