场景 字符串占位替换 String.fORMat 最原始最基础的方式。 使用%来表示占位,后面跟上不同的标识符,用于限定这个占位符的参数类型,由jdk原生提供支持。 示例: String badao = String.for
String.fORMat
最原始最基础的方式。
使用%来表示占位,后面跟上不同的标识符,用于限定这个占位符的参数类型,由jdk原生提供支持。
示例:
String badao = String.format("hello:%s", "badao"); System.out.println(badao);
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 integerList = new ArrayList(){{ add(1); add(2); add(3); }};
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);
StringJoiner 由jdk1.8提供
String collect = integerList.stream().map(String::valueOf).collect(Collectors.joining(",")); System.out.println(collect);
如果使用的jdk不是1.8版本,还可使用guava的joiner
String join = Joiner.on(",").join(integerList); System.out.println(join);
注:
博客:
霸道流氓气质的博客_CSDN博客-C#,架构之路,SpringBoot领域博主
字符串先转数组,然后再数组转列表
通过Arrays.asList
String[] cells = "a,b,c".split(","); List stringList = Arrays.asList(cells); System.out.println(stringList);
通过Collections.addAll
List list1 = new ArrayList<>(); Collections.addAll(list1,"a,b,c,d".split(",")); System.out.println(list1);
如果希望转成int列表
List 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);
通过guava的方式
通过guava的Splitter.on().splitToList
List stringList1 = Splitter.on(",").splitToList("a,b,c,d,e"); System.out.println(stringList1);
直接转换成流可以使用splitToStream
List 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);
通过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
通过String.join
缺点是列表必须是字符串列表,如果换成int列表则不行
String join = String.join(",", stringList1); System.out.println(join);//a,b,c,d,e
guava提供的Joiner 没有列表类型的限制
String join1 = Joiner.on(",").join(stringList1); System.out.println(join1);
来源地址:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/130965385
--结束END--
本文标题: Java中字符串占位替换、字符串拼接、字符串与Collection互转的方式
本文链接: https://www.lsjlt.com/news/392216.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-03
2024-04-03
2024-04-01
2024-01-21
2024-01-21
2024-01-21
2024-01-21
2023-12-23
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0