我尝试使用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);
答案 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个数组。 但是,如果要限制拆分后要创建的数组数量,则可以将第二个参数作为整数参数传递。