1.将一个集合里面的元素拼接成一串字符串
如arrayList list里面有[1,2,3],现在要得到一个字符串,将元素取出拼接成特定格式。
方法一:
//将集合[1,,2,3]转换成字符串1,2,3
List list=new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
StringBuffer stringBuffer=new StringBuffer(list.size()*2-1);
for (int i = 0; i < list.size(); i++) {
stringBuffer.append(list.get(i));
if (i!=list.size()-1){
stringBuffer.append(",");
}
}
System.out.println(stringBuffer);
方法二:
//将集合[1,,2,3]转换成字符串1,2,3
List list=new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
String join = StringUtils.join(list.toArray(), ",");
System.out.println(join);
自己写拼接方法会比较麻烦(方法一),要考虑的比较多,比如集合为空要处理,拼接位置要处理,总之很要注意的细节不少,而直接调用Java的org.apache.commons.lang.StringUtils;包里面的这个join方法(方法二)非常简便,细节都处理到位,且连接符号可以传参。
2.拼接字符串(实用场景:如url拼接)
方法一:直接拼接
//固定地址,后面拼接参数
String url = "https://open.weixin.qq.com/" +
"connect/qrconnect?appid="+ ConstantWxUtils.WX_OPEN_APP_ID+"&response_type=code";
方法二:String.format
// 微信开放平台授权baseUrl %s相当于?代表占位符
String baseUrl = "https://open.weixin.qq.com/connect/qrconnect" +
"?appid=%s" +
"&redirect_uri=%s" +
"&response_type=code" +
"&scope=snsapi_login" +
"&state=%s" +
"#wechat_redirect";
//对redirect_url进行URLEncoder编码
String redirectUrl = ConstantWxUtils.WX_OPEN_REDIRECT_URL;
try {
redirectUrl = URLEncoder.encode(redirectUrl, "utf-8");
}catch(Exception e) {
}
//设置%s里面值
String url=String.format(baseUrl,
ConstantWxUtils.WX_OPEN_APP_ID,
redirectUrl,
"atguigu");
注:%s是占位符,format()方法可以把修改后的格式填充,该方法在实际应用中更普遍。
3.数据类中用integer而不用int原因
比如 表示学生的分数,假如 int score;
-
比如学生得了0分 ,int score = 0;
-
如果表示学生没有参加考试,int score = 0;不能准确表示学生是否参加考试
解决:使用包装类可以了, Integer score = 0,表示学生得了0分,
表示学生没有参加考试,Integer score = null;
4.字符串自身排序
例如:String s=“cabd";排序得到s=“abcd”
String s=“cabd";
char[] strNum = str.toCharArray();
Arrays.sort(strNum);
s = new String(strNum);
5.排序
数组排序:
Arrays.sort(num);
集合排序:
1.升序(默认)
Collections.sort(list); //使用Collections的sort方法
2.降序
2.1
Collections.sort(list, new Comparator<Integer>() {
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
});//使用Collections的sort方法,并且重写compare方法
2.2
Collections.sort(list,(a,b)->b.compareTo(a));
2.3
list=list.stream().sorted((a,b)->b.compareTo(a)).collect(Collectors.toList());
6.数组和集合转换
Integer[] num={2,3,3,6,2,5,6};
List<Integer> list = Arrays.asList(num);
num= (Integer[]) list.toArray();