2

实际上这是一个非常简单的问题,我尝试了很多但我无法得到确切的解决方案。我有一个像这样的字符串:

String mystring = "one<1234567>,two<98765432>,three<878897656>";

在这里,我想要里面的数据"<"">". 谁能帮我这个?

4

6 回答 6

2

我会使用正则表达式

String str = "one<1234567>,two<98765432>,three<878897656>";
Matcher m = Pattern.compile("<(.+?)>").matcher(str);
while(m.find()) {
    String v = m.group(1);
}
于 2013-06-17T11:08:12.773 回答
1

尝试

String mystring = "one<1234567>,two<98765432>,three<878897656>";
    String[] result = mystring.split(",");
    for (String s : result) {
        s = s.substring(s.indexOf("<")+1);
        s = s.substring(0, s.indexOf(">"));
        System.out.println(s);
    }

打印结果:

1234567
98765432
878897656
于 2013-06-17T11:10:05.120 回答
0

您可以使用正则表达式,例如<(.*?)>

String mystring = "one<1234567>,two<98765432>,three<878897656>";
Pattern pattern = Pattern.compile("<(.*?)>");
Matcher matcher = pattern.matcher(mystring);
while (matcher.find())
{
    System.out.println(matcher.group(1));
}
于 2013-06-17T11:09:35.803 回答
0

试试这个

String mystring = "one<1234567>,two<98765432>,three<878897656>";
String[] a = myString.split(",");
for(int i = 0; i < a.length; i++){
String substr=a[i].subString(a[i].indexOf("<"),a[i].indexOf(">"));
System.out.println(substr);
}
于 2013-06-17T11:15:41.367 回答
0

尝试您的内括号值是否始终为数字且在字母之外,即 <, >

String[] strings=mystring.replaceAll("[a-z<>]", "").split(",");

         for(String string:stringsArray)
         { 
          System.out.println(string);
         }
于 2013-06-17T11:27:29.687 回答
0

StringTokenizer我从课堂上找到了一个新的解决方案

您可以将其用作,

 StringTokenizer tokens = new StringTokenizer(KEY_SUBFOLDERNAME, ".");
            String first_string = tokens.nextToken();
            File_Ext = tokens.nextToken();
            System.out.println("First_string : "+first_string);
            System.out.println("File_Ext : "+File_Ext);
于 2016-08-02T04:38:55.263 回答