如何从第一个空格中分割出一个字符串,只发生Java

时间:2016-09-27 19:05:39

标签: java string

我尝试使用string.Index和string.length拆分字符串,但是我收到一个字符串超出范围的错误。我该如何解决这个问题?

while (in.hasNextLine())  {

    String temp = in.nextLine().replaceAll("[<>]", "");
    temp.trim();

    String nickname = temp.substring(temp.indexOf(' '));
    String content = temp.substring(' ' + temp.length()-1);

    System.out.println(content);

4 个答案:

答案 0 :(得分:30)

使用带限制的java.lang.String拆分函数。

String foo = "some string with spaces";
String parts[] = foo.split(" ", 2);
System.out.println(String.format("cr: %s, cdr: %s", parts[0], parts[1]));

你会得到:

cr: some, cdr: string with spaces

答案 1 :(得分:7)

必须围绕这个:

String nickname = temp.substring(0, temp.indexOf(' '));
String content = temp.substring(temp.indexOf(' ') + 1);

答案 2 :(得分:6)

string.split(" ",2)

split采用限制输入来限制模式的应用次数。

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String,%20int)

答案 3 :(得分:0)

String string = "This is test string on web";
String splitData[] = string.split("\\s", 2);

Result ::
splitData[0] =>  This
splitData[1] =>  is test string  


String string = "This is test string on web";
String splitData[] = string.split("\\s", 3);

Result ::
splitData[0] =>  This
splitData[1] =>  is
splitData[1] =>  test string on web

默认情况下,split方法基于给定的正则表达式创建n个数组。 但是,如果要限制拆分后要创建的数组数量,则可以将第二个参数作为整数参数传递。