1

解析字符串的最佳方法是什么

例子

SomeName_Some1_Name2_SomeName3

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

4

8 回答 8

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());
        }
于 2012-10-18T11:13:57.647 回答
0
  • _使用方法通过下划线分割它split()
  • 从上一步返回的数组中获取索引#0
于 2012-10-18T11:08:11.157 回答
0

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

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

另请参阅:String.split()的 Javadoc

于 2012-10-18T11:09:25.183 回答
0

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

如果您只想要字符串的一部分,我会结合 indexOf('_') 进行子字符串化。

如果您想要所有出现次数,您还可以在文本中找到所有出现的“someName”。

于 2012-10-18T11:09:36.057 回答
0

使用 regex 和 Pattern Matcher API 来获取 SomeName。

于 2012-10-18T11:10:25.183 回答
0

干得好:

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

输出:

SomeName
于 2012-10-18T11:10:42.327 回答
0
String str = "SomeName_Some1_Name2_SomeName3";
String output = str.split ( "_" ) [ 0 ];

您将获得作为 SomeName 的输出。

于 2012-10-18T11:12:55.437 回答
0
String your_String =  "SomeName_Some1_Name2_SomeName3";
your_String = your_String.split("_")[0];
Log.v("log","your string  "+ your_String);
于 2012-10-18T11:18:09.187 回答