当前位置:   article > 正文

Java中字符串占位替换、字符串拼接、字符串与Collection互转的方式_java string占位符替换

java string占位符替换

场景

字符串占位替换

1、String.format

最原始最基础的方式。

使用%来表示占位,后面跟上不同的标识符,用于限定这个占位符的参数类型,由jdk原生提供支持。

示例:

  1.         String badao = String.format("hello:%s", "badao");
  2.         System.out.println(badao);

2、MessageFormat

如果遇到一个参数需要替换模板中多个占位的场景,更友好的方式是MessageFormat,由jdk原生提供支持。

示例:

  1.         String message = MessageFormat.format("hello:{0},your name is {0},your class is {1}","badao","class1");
  2.         System.out.println(message);

字符串拼接

举例:将int数组转为英文逗号分割的字符串为例

首先初始化一个int数组

  1.         List<Integer> integerList = new ArrayList<Integer>(){{
  2.             add(1);
  3.             add(2);
  4.             add(3);
  5.         }};

1、StringBuilder来拼接

  1.         StringBuilder stringBuilder = new StringBuilder();
  2.         for (Integer i:integerList) {
  3.             stringBuilder.append(i).append(",");
  4.         }
  5.         String substring = stringBuilder.substring(0, stringBuilder.length() - 1);
  6.         System.out.println(substring);

2、StringJoiner 由jdk1.8提供

  1.         String collect = integerList.stream().map(String::valueOf).collect(Collectors.joining(","));
  2.         System.out.println(collect);

3、如果使用的jdk不是1.8版本,还可使用guava的joiner

  1.         String join = Joiner.on(",").join(integerList);
  2.         System.out.println(join);

注:

博客:
霸道流氓气质的博客_CSDN博客-C#,架构之路,SpringBoot领域博主

字符串与Collection的互转

字符串转列表

1、字符串先转数组,然后再数组转列表

通过Arrays.asList

  1.         String[] cells = "a,b,c".split(",");
  2.         List<String> stringList = Arrays.asList(cells);
  3.         System.out.println(stringList);

通过Collections.addAll

  1.         List<String> list1 = new ArrayList<>();
  2.         Collections.addAll(list1,"a,b,c,d".split(","));
  3.         System.out.println(list1);

如果希望转成int列表

  1.         List<Integer> collect = Stream.of("1, ,2 ,3,4".split(","))
  2.                 .map(String::trim)
  3.                 .filter(s -> !s.isEmpty())
  4.                 .map(Integer::valueOf)
  5.                 .collect(Collectors.toList());
  6.         System.out.println(collect);

2、通过guava的方式

通过guava的Splitter.on().splitToList

  1.         List<String> stringList1 = Splitter.on(",").splitToList("a,b,c,d,e");
  2.         System.out.println(stringList1);

直接转换成流可以使用splitToStream

  1.         List<Integer> collect1 = Splitter.on(",").splitToStream("1, ,2 ,3,4")
  2.                 .map(String::trim)
  3.                 .filter(s -> !s.isEmpty())
  4.                 .map(Integer::valueOf)
  5.                 .collect(Collectors.toList());
  6.         System.out.println(collect1);

列表转字符串

1、通过StringBuilder

  1.         StringBuilder builder = new StringBuilder();
  2.         for (String str:stringList1){
  3.             builder.append(str).append(",");
  4.         }
  5.         //最后一个拼接符号不要
  6.         String substring = builder.substring(0, builder.length() - 1);
  7.         System.out.println(substring);//a,b,c,d,e

2、通过String.join

缺点是列表必须是字符串列表,如果换成int列表则不行

  1.         String join = String.join(",", stringList1);
  2.         System.out.println(join);//a,b,c,d,e

3、guava提供的Joiner  没有列表类型的限制

  1.         String join1 = Joiner.on(",").join(stringList1);
  2.         System.out.println(join1);

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/829761
推荐阅读
相关标签
  

闽ICP备14008679号