我有像"align is going to school sad may me"
这样的字符串。我想在四个空格后得到子字符串。字符串将在运行时输入。有人可以建议我在一些空格后找到Sub String吗...
String st = "align is going to school sad may me";
int i = 0;
String [] strings = new String [15];
StringTokenizer stringTokenizer = new StringTokenizer (st, " ");
while (stringTokenizer.hasMoreElements ())
{
strings [i]= (String)stringTokenizer.nextElement ();
i++;
}
System.out.println ("I value is" + i);
for (int j=4; j<i; j++)
{
System.out.print (strings[j] + " ");
}
我已经尝试过这一方法,并且它能正常工作,请您为我推荐一种简单的方法来在一组空格后找到Sub字符串。
最佳答案
st = st.replaceAll("^(\\S*\\s){4}", "");
^
表示我们仅从字符串的第一个字符中删除。\s
是任何空格。它还将删除例如表格。\S
是任何非空格字符。*
表示任意多次出现的字符。因此,
\S*
是空白之前的任意数量的非空白字符。{4}
显然是因为您要删除4个空格。您还可以使用:
st = st.replaceFirst("(\\S*\\s){4}", "");
相同,但是您不需要
^
。如果输入字符串的空格少于4个:
st = st.replaceAll("^(\\S*\\s){1,4}", "");
仅当字符串不以空格结尾时,才会返回字符串的最后一个单词。如果首先调用
trim
,就可以确定:st = st.trim().replaceAll("^(\\S*\\s){1,4}", "");