我想像这样解析字符串:
String str = 6,image micky.jpeg:7,image 02.jpeg:8,img3;
在java中。在此6
中,7
,8
是ID,动态字符串中可以包含任意数量的ID。
我想从这个字符串中找到id的数组怎么做。
答案 0 :(得分:2)
您可以使用带有“:”参数的split方法。 split(String regex)方法(在String 对象上使用)返回一个字符串数组,这些字符串在对象中由正则表达式分隔。在这种情况下,它将返回一个数组:
{“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);
}
在这两种情况下,String id都是您要找的。 p>
如果你试试
String[] array = str.split(",");
首先,生成的数组看起来像:
{“6”,“image micky.jpeg:7”,“image 02.jpeg:8”,“img3”}
答案 1 :(得分: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();
}
}
答案 2 :(得分:0)
答案 3 :(得分: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));
}
}