赞
踩
1、String.format
最原始最基础的方式。
使用%来表示占位,后面跟上不同的标识符,用于限定这个占位符的参数类型,由jdk原生提供支持。
示例:
- String badao = String.format("hello:%s", "badao");
- System.out.println(badao);
2、MessageFormat
如果遇到一个参数需要替换模板中多个占位的场景,更友好的方式是MessageFormat,由jdk原生提供支持。
示例:
- String message = MessageFormat.format("hello:{0},your name is {0},your class is {1}","badao","class1");
- System.out.println(message);
举例:将int数组转为英文逗号分割的字符串为例
首先初始化一个int数组
- List<Integer> integerList = new ArrayList<Integer>(){{
- add(1);
- add(2);
- add(3);
- }};
1、StringBuilder来拼接
- StringBuilder stringBuilder = new StringBuilder();
- for (Integer i:integerList) {
- stringBuilder.append(i).append(",");
- }
- String substring = stringBuilder.substring(0, stringBuilder.length() - 1);
- System.out.println(substring);
2、StringJoiner 由jdk1.8提供
- String collect = integerList.stream().map(String::valueOf).collect(Collectors.joining(","));
- System.out.println(collect);
3、如果使用的jdk不是1.8版本,还可使用guava的joiner
- String join = Joiner.on(",").join(integerList);
- System.out.println(join);
注:
博客:
霸道流氓气质的博客_CSDN博客-C#,架构之路,SpringBoot领域博主
1、字符串先转数组,然后再数组转列表
通过Arrays.asList
- String[] cells = "a,b,c".split(",");
- List<String> stringList = Arrays.asList(cells);
- System.out.println(stringList);
通过Collections.addAll
- List<String> list1 = new ArrayList<>();
- Collections.addAll(list1,"a,b,c,d".split(","));
- System.out.println(list1);
如果希望转成int列表
- List<Integer> collect = Stream.of("1, ,2 ,3,4".split(","))
- .map(String::trim)
- .filter(s -> !s.isEmpty())
- .map(Integer::valueOf)
- .collect(Collectors.toList());
- System.out.println(collect);
2、通过guava的方式
通过guava的Splitter.on().splitToList
- List<String> stringList1 = Splitter.on(",").splitToList("a,b,c,d,e");
- System.out.println(stringList1);
直接转换成流可以使用splitToStream
- List<Integer> collect1 = Splitter.on(",").splitToStream("1, ,2 ,3,4")
- .map(String::trim)
- .filter(s -> !s.isEmpty())
- .map(Integer::valueOf)
- .collect(Collectors.toList());
- System.out.println(collect1);
1、通过StringBuilder
- StringBuilder builder = new StringBuilder();
- for (String str:stringList1){
- builder.append(str).append(",");
- }
- //最后一个拼接符号不要
- String substring = builder.substring(0, builder.length() - 1);
- System.out.println(substring);//a,b,c,d,e
2、通过String.join
缺点是列表必须是字符串列表,如果换成int列表则不行
- String join = String.join(",", stringList1);
- System.out.println(join);//a,b,c,d,e
3、guava提供的Joiner 没有列表类型的限制
- String join1 = Joiner.on(",").join(stringList1);
- System.out.println(join1);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。