2

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

例如:

我有以下字符串。

# STRING_VALUES #

一句话如下

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

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

STRING_VALUES
CMESSAGE
CUSTOMERADDRESS

如何获取上述字符串?我被这个困住了。

4

7 回答 7

9

使用split

String ss ="# STRING_VALUES #";
String[] parts = ss.split("#");
System.out.println(parts[1].trim()); // STRING_VALUES

演示

于 2012-09-25T11:06:05.927 回答
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);
}
于 2012-09-25T11:03:53.390 回答
0

你可以用正则表达式来做到这一点。请参阅类PatternMatcher。在您的示例中查找 STRING_VALUE 字符串的正则表达式将是:

#\s(\w*)\s#

这将在“#”和空格之后以及在空格和“#”之前返回一串单词字符(字母、数字和下划线)。单词字符链将作为您可以单独提取的子匹配返回。

或者,您可以使用String.indexOf在您的字符串中搜索分隔符的位置,并使用String.substring来提取您找到的分隔符位置之间的部分。

于 2012-09-25T11:02:26.600 回答
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);
于 2012-09-25T11:03:22.143 回答
0

您可以使用此处String[] split(String regex)记录的 String 类的方法。

于 2012-09-25T11:03:32.267 回答
0

如果您的字符串采用这种格式,即空格分隔,您可以使用 String.split()

String ss ="# STRING_VALUES #";
    System.out.println(ss.split("\\s")[1]);

上面的代码返回 STRING_VALUES 作为输出

于 2012-09-25T11:04:02.420 回答
0

您可以使用子字符串:

http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#substring(int , int)

或者你可以使用正则表达式: Need regexp to find substring between two tokens

于 2012-09-25T11:07:10.097 回答