麻烦的字符串和indexOf

时间:2015-09-15 22:28:31

标签: java string indexof

如果用户输入yes,我正在尝试创建用户在逗号之间输入的所有内容的列表(收据)。例如:猫,狗,鱼会返回:猫狗鱼在不同的线上。我会使用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"))

5 个答案:

答案 0 :(得分:1)

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

这将返回一个字符串数组,然后可以像这样播放:

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

你也可以使用正则表达式,但这对我来说似乎有些过分。

答案 1 :(得分:0)

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

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

或者,您可以执行split(",");,然后使用trim()方法删除任何额外的空白区域。 (你永远不知道可能有多少)

split()方法将返回一个字符串数组,您现在可以使用它。因此,如果您想要将其打印出来,请执行以下操作:

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

答案 2 :(得分:0)

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

说用户输入:"狗,猫,老鼠,猫猫,"

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

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

答案 3 :(得分:0)

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

是要走的路。正如其他人所说。当从用户获得yes / no时,也尝试使用equalsIgnoreCase。

答案 4 :(得分:0)

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