我有类似的字符串"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] + " ");
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试了这个,它的工作可以请你建议我在一些空格后找到Sub字符串的简单方法.
Adr*_*ián 10
st = st.replaceAll("^(\\S*\\s){4}", "");
Run Code Online (Sandbox Code Playgroud)
^ 表示我们只从字符串的第一个字符中删除.
\s是任何白色空间.例如,它也会删除表格.
\S 是任何非空白字符.
* 表示任意数量的角色出现.
因此,\S*在空格之前是否有任意数量的非空格字符.
{4} 显然是因为你想删除4个空格.
你也可以使用:
st = st.replaceFirst("(\\S*\\s){4}", "");
Run Code Online (Sandbox Code Playgroud)
这是相同的,但你不需要 ^.
如果输入字符串可能少于4个空格:
st = st.replaceAll("^(\\S*\\s){1,4}", "");
Run Code Online (Sandbox Code Playgroud)
只有当字符串不在空格上结束时,才会返回字符串的最后一个单词.如果你trim先打电话,你可以确定:
st = st.trim().replaceAll("^(\\S*\\s){1,4}", "");
Run Code Online (Sandbox Code Playgroud)
怎么用split?
st.split (" ", 5) [4]
Run Code Online (Sandbox Code Playgroud)
它按空格分割字符串,分成不超过5个块.最后一个块(索引为4)将包含第四个空格后的所有内容.
如果不保证字符串包含4个空格,则需要进行额外检查:
String [] chunks = st.split (" ", 5);
String tail = chunks.length == 5 ? chunks [4] : null;
Run Code Online (Sandbox Code Playgroud)
Tail将包含第四个空格后的所有内容或null,原始字符串中的空格少于四个.
| 归档时间: |
|
| 查看次数: |
9406 次 |
| 最近记录: |