我想从一个完整的单词中获取String的特定部分。
例如:
我有以下字符串。
# STRING_VALUES #
,句子如下
<p># STRING_VALUE #<br /># CMESSAGE #<br /># CUSTOMERADDRESS #<br /><br /></p>
从上面我想得到如下字符串:
STRING_VALUES
CMESSAGE
CUSTOMERADDRESS
如何获取上述字符串?我坚持这个。
答案 0 :(得分:8)
使用split
:
String ss ="# STRING_VALUES #";
String[] parts = ss.split("#");
System.out.println(parts[1].trim()); // STRING_VALUES
<强> DEMO 强>
答案 1 :(得分:3)
对于您的具体情况,以下代码将起作用:
String str = "# STRING_VALUES #";
String result = str.substring(2,str.length()-2);
更新:(以下代码适用于修改后的输入字符串)
String str = "<p># STRING_VALUE #<br /># CMESSAGE #<br /># CUSTOMERADDRESS #<br /><br /></p>";
String[] tokens = str.substring(3, str.length()-4).split("<br />");
// tokens will contain [0] = "# STRING_VALUE #"
// [1] = "# CMESSAGE #"
// [2] = "# CUSTOMERADDRESS #"
// [3] = ""
ArrayList<String> results = new ArrayList<String>();
for(String token : tokens)
{
if(token.length() != 0)
{
results.add(token.substring(2,str.length()-2));
}
}
// results has required strings
for(String result : results)
{
System.out.println(result);
}
答案 2 :(得分:0)
你可以用正则表达式做到这一点。查看课程Pattern和Matcher。在示例中查找STRING_VALUE字符串的正则表达式为:
#\s(\w*)\s#
这将在“#”和空格之后,在空格和“#”之前返回一串字符(字母,数字和下划线)。单词字符串将作为您可以单独提取的子匹配返回。
或者,您可以使用String.indexOf搜索字符串中的分隔符位置,并使用String.substring在您找到的分隔符位置之间提取部分。
答案 3 :(得分:0)
查看http://docs.oracle.com/javase/6/docs/api/java/lang/String.html
他们会告诉你:
以下是一些如何使用字符串的示例:
System.out.println("abc");
String cde = "cde";
System.out.println("abc" + cde);
String c = "abc".substring(2,3);
String d = cde.substring(1, 2);
答案 4 :(得分:0)
您使用String类的String[] split(String regex)
方法记录为here。
答案 5 :(得分:0)
如果你的字符串是这种格式的i.s.,空格分隔你可以使用String.split()
String ss ="# STRING_VALUES #";
System.out.println(ss.split("\\s")[1]);
上面的代码返回STRING VALUES作为输出
答案 6 :(得分:0)