【问题标题】:How to get particular part of string in java? [closed]如何在java中获取字符串的特定部分? [关闭]
【发布时间】:2012-09-25 11:00:03
【问题描述】:

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

例如:

我有以下字符串。

# STRING_VALUES #

还有一句话如下

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

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

STRING_VALUES
CMESSAGE
CUSTOMERADDRESS

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

【问题讨论】:

标签: java string


【解决方案1】:

使用split:

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

DEMO.

【讨论】:

  • 感谢您的回复。它正在部分工作。它显示
    。如何删除它。
【解决方案2】:

对于您的具体情况,以下代码将起作用:

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);
}

【讨论】:

  • 好的。但是我收集了相同的字符串。那情况呢?
  • 更新的答案能解决问题吗?
【解决方案3】:

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

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

以上代码返回 STRING_VALUES 作为输出

【讨论】:

  • 我不会对这么简单的任务使用正则表达式
【解决方案4】:

您使用 String 类的 String[] split(String regex) 方法,如文档 here 所述。

【讨论】:

  • 忘记在答案中添加超链接?
【解决方案5】:

【讨论】:

    【解决方案6】:

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

    #\s(\w*)\s#
    

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

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

    【讨论】:

      【解决方案7】:

      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);
      

      【讨论】:

        猜你喜欢
        • 2021-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-25
        • 1970-01-01
        相关资源
        最近更新 更多