如何在java中获取字符串的特定部分?

时间:2012-09-25 11:00:03

标签: java string

我想从一个完整的单词中获取String的特定部分。

例如:

我有以下字符串。

# STRING_VALUES #

,句子如下

<p># STRING_VALUE #<br /># CMESSAGE #<br /># CUSTOMERADDRESS #<br /><br /></p>

从上面我想得到如下字符串:

STRING_VALUES
CMESSAGE
CUSTOMERADDRESS

如何获取上述字符串?我坚持这个。

7 个答案:

答案 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)

你可以用正则表达式做到这一点。查看课程PatternMatcher。在示例中查找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)