-1

我想解析这样的字符串:

String str = 6,image micky.jpeg:7,image 02.jpeg:8,img3;

在爪哇。其中6, 7,8是 ids,动态字符串中可以有任意数量的 ids。

我想从这个字符串中找到 ids 数组如何做到这一点。

4

4 回答 4

2

您可以使用带有“:”参数的拆分方法。split(String regex)方法(用于 String对象)返回一个字符串数组,这些字符串在对象中由regex分隔。在这种情况下,它将返回一个数组,如:

{"6,image micky,jpeg","7,image 02.jpeg","8,img3"}

然后你可以遍历这个数组并再次使用 split 。这次使用“,”作为参数。然后你需要从结果数组中获取第一个值。

String[] array = str.split(":");
for(int i=0;i<array.length;i++){
  String[] innerData = array[i].split(",");
  String id = innerData[0];
  System.out.println(id);
}

或者

String[] array = str.split(":");
for(String s : array){
  String[] innerData = s.split(",");
  String id = innerData[0];
  System.out.println(id);
}

在这两种情况下,字符串 id 都是您要查找的。

如果你想尝试

String[] array = str.split(",");

首先,生成的数组如下所示:

{"6","image micky.jpeg:7","image 02.jpeg:8","img3"}

于 2012-10-09T10:20:30.133 回答
2
    String str = "6,image micky.jpeg:7,image 02.jpeg:8,img3";
    String[] array = str.split(":");

    int[] ids = new int[array.length]; // Array of ids.
    int index = 0;

    for (String s : array) 
    {
        String[] subArray = s.split(",");

        try
        {
            ids[index++] = Integer.valueOf(subArray[0]);
        }
        catch(NumberFormatException nfe)
        {
            nfe.printStackTrace();
        }           
    }
于 2012-10-09T10:24:30.647 回答
0

您需要使用String类的StringTokenizersplit(...) 方法。

于 2012-10-09T10:21:24.953 回答
0

使用 StringTokenizer

     String str = "6,image micky.jpeg:7,image 02.jpeg:8,img3";

     StringTokenizer tk = new StringTokenizer(str, ":");
     while (tk.hasMoreElements()) {
        String elem = (String) tk.nextElement();

        StringTokenizer tk1 = new StringTokenizer(elem, ",");

         if (tk1.hasMoreElements()) {
                String elem1 = (String) tk1.nextElement();
                System.out.println(elem1.charAt(0));
         }      

     }
于 2012-10-09T10:33:08.057 回答