JAVA代码片段
1.数组和List之间的转换
String[] ids1 = {"1","2","3"};
List<String> idList = Arrays.asList(ids);
String[] idArray1 = (String[]) idList.toArray();
2.数字转固定长度字符串,长度不够前面补0
public String convert(String str, int length) {
StringBuilder sb = null;
int strLen = str.length();
while (strLen < length) {
sb = new StringBuilder();
sb.append("0").append(str);
str = sb.toString();
strLen = str.length();
}
str = prefix + str;
return str;
}
3.Java集合转换(数组,List,Map,Set)
@Test
public void testCollection() {
try {
Map<String, String> map = new HashMap<String, String>();
map.put("A", "ABC");
map.put("K", "KK");
map.put("L", "LV");
// 将Map Key 转化为List
List<String> mapKeyList = new ArrayList<String>(map.keySet());
System.out.println("mapKeyList:"+mapKeyList);
// 将Map value 转化为List
List<String> mapValuesList = new ArrayList<String>(map.values());
System.out.println("mapValuesList:"+mapValuesList);
// 将Map Key 转化为Set
Set<String> mapKeySet = map.keySet();
System.out.println("mapKeySet:"+mapKeySet);
// 将Map alue 转化为Set
Set<String> mapValuesSet = new HashSet<String>(map.values());
System.out.println("mapValuesSet:"+mapValuesSet);
String[] arr = {"AA","BB","DD","CC","BB"};
//数组 --> Set
Set<String> set = new HashSet<String>(Arrays.asList(arr));
System.out.println(set);
Set<String> set2 = new HashSet<String>();
set2.add("AA");
set2.add("BB");
set2.add("CC");
String[] arr2 = new String[set2.size()];
//Set --> 数组
set2.toArray(arr2);
System.out.println(Arrays.toString(arr2));
List<String> list = new ArrayList<String>();
list.add("ABC");
list.add("EFG");
list.add("LMN");
list.add("LMN");
//List --> Set
Set<String> listSet = new HashSet<String>(list);
System.out.println(listSet);
//Set --> List
List<String> setList = new ArrayList<String>(set2);
System.out.println(setList);
//List --> 数组
Object[] objects = list.toArray();//返回Object数组
System.out.println("objects:"+Arrays.toString(objects));
String[] arr3 = new String[list.size()];
list.toArray(arr3);//将转化后的数组放入已经创建好的对象中
System.out.println("strings:"+Arrays.toString(arr3));
//数组-->List
String[] ss = {"JJ","KK"};
List<String> list1 = Arrays.asList(ss);
List<String> list2 = Arrays.asList("AAA","BBB");
System.out.println(list1);
System.out.println(list2);
} catch (Exception e) {
e.printStackTrace();
}
}
4.遍历Set
@Test
public void testSomething() {
try {
Set<String> set = new HashSet<>(Arrays.asList("a","b","c"));
Iterator<String> it = set.iterator();
while(it.hasNext()){
String keyStr = it.next();
System.out.println(keyStr);
}
} catch (Exception e) {
e.printStackTrace();
}
}
5.Spring和Xml互转
参考博客:http://blog.csdn.net/yyywyr/article/details/38361367 (dom4j)
http://blog.csdn.net/arui_email/article/details/7703424 (多种方式)
6.生成随机字符串代码
public static String getRandomString(int length) { //length表示生成字符串的长度
String base = "abcdefghijklmnopqrstuvwxyz0123456789";
Random random = new Random();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < length; i++) {
int number = random.nextInt(base.length());
sb.append(base.charAt(number));
}
return sb.toString();
}
7.List<Integer>.remove()的一个小细节
有两个remove方法:
public E remove(int index); public boolean remove(Object o);
为了移除制定的元素而不至于引起混淆的话,可以将传入的int先封装一下:
list.remove((Integer)10);
8.StringBuilder清空
清空有3种方法:
1)新生成一个,旧的由系统自动回收
1)新生成一个,旧的由系统自动回收
StringBuilder sb2 = new StringBuilder();
2)使用delete
2)使用delete
sb.delete( 0, sb.length() );
3)使用setLength
3)使用setLength
sb3.setLength( 0 );
9.String.split(String regex)细节,regex为正则表达式,有特殊含义的需要转义
如果,String str = "aa.bb.cc.dd";
String[] strArray = str.split(".");
则结果为:0
为什么结果不是我们所想的呢,原因是参数 String regex 是正则表达式 (regular expression) 而不是普通字符串,而 "." 在正则表达式中有特殊含义,表示匹配所有单个字符。如果要那样拆分,我们必须给 "." 进行转义,String[] strArray = str.split(".") 修改为 String[] strArray = str.split("\\.") 即可。
10.Java中char和String的转换
String转char
1. 使用String.charAt(index)
(返回值为char)可以得到String中某一指定位置的char。
2. 使用String.toCharArray()
(返回值为char[])可以得到将包含整个String的char数组。这样我们就能够使用从0开始的位置索引来访问string中的任意位置的元素。
char转String
String s = String.valueOf('c'); //效率最高的方法