使用子字符串解析字符串

时间:2012-10-18 11:05:35

标签: java

解析字符串

的最佳方法是什么

实施例

SomeName_Some1_Name2_SomeName3

我想离开SomeName。什么是最好的方法?使用substring和计算位置或是另一种更好的方法

8 个答案:

答案 0 :(得分:2)

您可以匹配模式SomeName以进行提取 -

        String str= "SomeName_Some1_Name2_SomeName3";
        Pattern ptrn= Pattern.compile("SomeName");
        Matcher matcher = ptrn.matcher(str);
        while(matcher.find()){
            System.out.println(matcher.group());
        }

答案 1 :(得分:0)

  • 使用方法_
  • 以下划线split()拆分它
  • 从上一步返回的数组中获取索引#0

答案 2 :(得分:0)

如果你知道分隔符,那么你可以试试这个:

System.out.println("SomeName_Some1_Name2_SomeName3".split("_")[0]);

另请参阅:String.split()

的Javadoc

答案 3 :(得分:0)

取决于您的配置以及您是否对其他字段感兴趣。 在这种情况下,请使用_ separator分割字符串。

如果您只想要一部分字符串,我只是将indextring与'('_')结合使用。

如果你想要所有的出现,你也可以在文本中找到所有出现的'someName'。

答案 4 :(得分:0)

使用正则表达式和Pattern Matcher API获取SomeName。

答案 5 :(得分:0)

你走了:

String str = "SomeName_Some1_Name2_SomeName3";
String newStr = str.substring(0, str.indexOf("_"));
System.out.println(newStr);

输出:

SomeName

答案 6 :(得分:0)

String str = "SomeName_Some1_Name2_SomeName3";
String output = str.split ( "_" ) [ 0 ];

您将输出为SomeName。

答案 7 :(得分:0)

String your_String =  "SomeName_Some1_Name2_SomeName3";
your_String = your_String.split("_")[0];
Log.v("log","your string  "+ your_String);