String,String[]与ArrayList互转,stringarraylist
分享于 点击 19111 次 点评:5
String,String[]与ArrayList互转,stringarraylist
除非整个String转为String[]的子项,否则我们得知道要从String的以哪个分割点开始切割成多个小的string作为String[]子项。要是以前小编肯定会用分割点的位置来实现分割技术(当然是不靠谱的)。下面我已一个字符串“abc,def,ghi,jkl,mno”为例展开不靠谱级别的实现方式。
String str = "abc,def,ghi,jkl,mno";
int count = 0;
int startIndex = 0;
for (int j = 0; j < str.length(); j++) {
int endIndex = str.indexOf(",", startIndex);
if (endIndex > 0) {
String child = str.substring(startIndex, endIndex);
startIndex = endIndex + 1;
System.out.println("strs[" + count + "]:" + child);
count++;
} else {
break;
}
}
如上运行结果显示输出是完全符合小编的需求的。那么小编讲下实现原理
好了,既然小编已经不靠谱的实现了String转String[]得到了{“abc”,”def”,”ghi”,”jkl”,”mno”},那么下一步便继不靠谱的来将String[]转ArrayList吧。
String[] strs = {"abc","def","ghi","jkl","mno"};
List<String> strLs = new ArrayList<>();
for (int i = 0, k = strs.length; i < k ; i++){
strLs.add(strs[i]);
}
System.out.println(strLs);
运行结果输出" title="">
看到没有,是不是很腻害的样子。肯定会被嘲讽的说,都说上面不靠谱。那咱还是来点靠谱的吧,免得让大家误解了就不好了。
String str = "abc,def,ghi,jkl,mno";
String[] strs = str.split(",", 0);// String转String[]
for (int i = 0, k = strs.length; i < k; i++) {
System.out.println("strs[" + i + "]:" + strs[i] + "; ");
}
List<String> strLs = Arrays.asList(strs);// String[]转ArrayList<String>
// String[] strs2 = strLs.toArray(new String[strLs.size()]);// ArrayList<String>反转String[]
System.out.println(strLs);
看到一样的结果却是用str.split();与Arrays.asList();就这么简单的实现了,小编的心承受不了了。再说说str.split(String regularExpression, int limit);两个参数的用意吧,其中”regularExpression”比较好理解,就是用来切分字符串的分水岭。而limit是限制的意思,其所限制的不是原字符串长度,而是每个分割后的子块总数量,(limit = “0”代表不限制,超过最大可分割的数量最终结果只能是以最大的分割量为准)。为了方便理解还是贴上吧。
String str = "abc,def,ghi,jkl,mno";
String[] strs = str.split(",", 0);
for (int i = 0, k = strs.length; i < k; i++) {
System.out.println("strs[" + i + "]:" + strs[i] + "; ");
}
String str = "abc,def,ghi,jkl,mno";
String[] strs = str.split(",", 1);
for (int i = 0, k = strs.length; i < k; i++) {
System.out.println("strs[" + i + "]:" + strs[i] + "; ");
}
String str = "abc,def,ghi,jkl,mno";
String[] strs = str.split(",", 2);
for (int i = 0, k = strs.length; i < k; i++) {
System.out.println("strs[" + i + "]:" + strs[i] + "; ");
}
以上为String[]转ArrayList的情况,那么同样的道理,应用以上技术来实现ArrayList反转至String[]。
这里写代码片
相关文章
- 暂无相关文章
用户点评