字符串和 indexOf 的问题

Trouble with strings and indexOf

如果用户键入是,我将尝试创建一个列表(收据),其中包含用户在逗号之间输入的所有内容。例如:cat, dog, fish 会 return: cat dog fish 分行。我会使用 indexOf 吗?

if (language.equals("English")) System.out.println("Please enter your order here (using commas to separate choices!)");

    String order =kboard.nextLine();

        if (language.equals("English")) System.out.println("Would you like a reciept (yes/no)?");

            String response =kboard.nextLine();

                if (response.equals("yes"))

使用split(parser)方法。不要只输入一个字符串,而是使用一个数组。对于您的情况,请使用以下代码。

String[] order = kboard.nextLine().split(", ");

或者,您可以执行 split(","); 然后使用 trim() 方法删除任何多余的白色 space。 (你永远不知道那里可能有多少)

split() 方法将 return 一个字符串数组,您现在可以使用它。所以如果你想打印出来,做这样的事情:

for(String s: order)
    System.out.println(s);

您可以对字符串使用 replaceAll 方法。

假设用户输入:"dog, cat, mouse, pussy-cat,"

String response = "dog, cat, mouse, pussy-cat,"
//The above line will remove any blank spaces.
String[] userInput = response.split(", ");

这将创建一个字符串数组,每个索引包含用户按相应顺序输入的单词。

如果您的源字符串将是像这样的逗号分隔列表,"cat, dog, bug",并且您使用的是 java,那么我会 String.split 并将分隔符设置为成为','。

这将 return 一个字符串数组,您可以像这样玩:

String textToParse = "cat, dog, bug";
String[] tokens = textToParse.split(',');

您也可以使用正则表达式,但这对我来说似乎太过分了。

String[] orderArray = response.split(',');

是必经之路。正如其他人所提到的。从用户获取 yes/no 时也尝试使用 equalsIgnoreCase。

另一种在拆分时避免尾随和前面的空格的方法,使用response.split(\s*,\s*);