最佳方法是什么,可以从Android字符串中提取子字符串?
如果您知道开始和结束索引,您可以使用
String substr=mysourcestring.substring(startIndex,endIndex);
如果您想从特定索引开始获取子字符串直到末尾,可以使用:
String substr=mysourcestring.substring(startIndex);
如果您想从特定字符获取子字符串直到末尾,可以使用:
String substr=mysourcestring.substring(mysourcestring.indexOf("characterValue"));
如果你想要获取某个特定字符后面的子字符串,那么将该字符的索引加上需要的长度即可使用 .indexOf(char)
方法:
String substr=mysourcestring.substring(mysourcestring.indexOf("characterValue") + 1);
以下是一个现实世界的例子:
String hallostring = "hallo";
String asubstring = hallostring.substring(0, 1);
在这个例子中,asubstring将返回:h如果您想要获取一个字符前后的子字符串,还有另一种方法。
String s ="123dance456";
String[] split = s.split("dance");
String firstSubString = split[0];
String secondSubString = split[1];
请查看此帖子 - 如何在字符串中找到前后子字符串
substring(int startIndex, int endIndex)
如果不指定endIndex,此方法将返回从startIndex开始的所有字符。
startIndex:起始索引包含在内。
endIndex:结束索引不包含。
示例:
String str = "abcdefgh"
str.substring(0, 4)
=> abcd
str.substring(4, 6)
=> ef
str.substring(6)
=> gh
public static String getSubString(String mainString, String lastString, String startString) {
String endString = "";
int endIndex = mainString.indexOf(lastString);
int startIndex = mainString.indexOf(startString);
Log.d("message", "" + mainString.substring(startIndex, endIndex));
endString = mainString.substring(startIndex, endIndex);
return endString;
}
mainString
是一个超级字符串,格式为 "I_AmANDROID.Devloper",而lastString
是一个以"."结尾的字符串,startString
是一个以"_"开头的字符串。因此,这个function
返回"AmANDROID"。祝你编码愉快。 :) Str.subSequence(int Start , int End)
使用Android中未公开的文本类:TextUtils.substring (CharSequence source, int start, int end)
String input_string = "foo/adsfasdf/adf/bar/erqwer/";
String regex = "(foo/|bar/)"; // Matches 'foo/' and 'bar/'
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input_string);
while(matcher.find()) {
String str_matched = input_string.substring(matcher.start(), matcher.end());
// Do something with a match found
}
所有回答者都给出了很好的答案。然而,我会为大家提供相关的方法,以便任何人都可以从一个地方获取,如果我发现新的内容,我会编辑我的答案。
substring(0) - 用于从给定的特定字符中截取字符串。
Substring(0,2) - 给出从起始位置(0)和结束位置(2)提取的子字符串。
Split("NAME") - 返回两部分字符串,第一部分是您在拆分“NAME”时使用的字符串,另一部分是剩余的字符串组合。
subSequence(0,3) - 返回给定起始索引(0)和结束索引(3)之间的序列。
虽然这个方法不是专门用于拆分字符串,但对于某些人来说可能会很有用。
startswith("A",3) - 返回特定起始字符的字符串。
例如:
String s = "StackOverflow";
String[] split = s.split("Stack");
System.out.println("STRING NAME:"+s.substring(2));
System.out.println("STRING NAME:"+s.substring(2,3));
System.out.println("STRING NAME:"+split[1]);
System.out.println("STRING NAME:"+split[0]);
System.out.println("STRING NAME:"+s.subSequence(2,5));
输出结果:
1)ackOverflow
2)a
3)Overflow
4)stack
5)ack
我希望这能够为您提供所需的足够信息。