在做批量删除数据的时候,前端传来的是以逗号分隔的字符串,要拿到service层进行处理分割,还原成数组或者ArrayList集合,经过网上查阅,总结如下,话不多说直接上代码
第一种方式(split)
String str = "a,b,c,d,e";
int i=0;
String[] array = str.split(",");
for (String string : array) {
System.out.print(string+" ");
}
第二种方式(工具类 StringTokenizer)
String str = "a,b,c,d,e";
int i=0;
StringTokenizer token = new StringTokenizer(str, ",");
String[] strArr = new String[token.countTokens()];
while(token.hasMoreTokens()){
strArr[i] = token.nextToken(); //返回从当前位置到下一个分隔符之间的字符串
System.out.print(strArr[i]+" ");
i++;
}
两种方式输出如下
下面我们来解析源码(StringTokenizer)
StringTokenizer(String str) //构造一个用来解析str的StringTokenizer对象。java默认的分隔符是“空格”、“制表符(‘\t’)”、“换行符(‘\n’)”、“回车符(‘\r’)”
StringTokenizer(String str, String delim) //构造一个用来解析str的StringTokenizer对象,并提供一个指定的分隔符。
StringTokenizer(String str, String delim, boolean returnDelims) //构造一个用来解析str的StringTokenizer对象,并提供一个指定的分隔符,同时,指定是否返回分隔符。
int countTokens() //返回nextToken方法被调用的次数。如果采用构造函数1和2,返回的就是分隔符数量
boolean hasMoreElements() //返回是否还有分隔符。
boolean hasMoreTokens() //同上
String nextToken() //返回从当前位置到下一个分隔符的字符串。
Object nextElement() //结果同上,除非返回的是Object而不是String
String nextToken(String delim) //同nextToken(),以指定的分隔符返回结果