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

场景

字符串占位替换

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领域博主

字符串与Collection的互转

字符串转列表

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);

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 要在控制台对齐一个字符串类型的集合,你可以使用字符串格式化来实现。例如,你可以使用以下方法来输出每个字符串,并且使它们在控制台对齐: ```python collection = ['apple', 'banana', 'orange'] # 计算集合最长的字符串的长度 max_length = len(max(collection, key=len)) # 用空格填充所有字符串,使它们达到最大长度 for item in collection: item = item.ljust(max_length) # 输出格式化的字符串 print("{0} {1}".format(item, "|")) ``` 这将给出以下输出: ``` apple | banana | orange | ``` 在这个例子,我们首先计算集合最长的字符串长度,然后使用 `ljust` 方法将每个字符串填充到最大长度,并且使用字符串格式化来将每个字符串和一个竖杠 `|` 对齐输出。 ### 回答2: 要在控制台对齐输出集合的字符串类型,可以使用字符串的格式化方法来实现。字符串格式化方法可以使用类似于C语言的printf函数的格式化占位符来定义输出的格式。 例如,假设有一个集合,包含三个字符串元素:"apple","banana"和"orange"。我们可以使用以下方法来对齐输出: ```python fruits = ["apple", "banana", "orange"] # 找出集合最长的字符串长度 max_length = max(len(fruit) for fruit in fruits) # 使用字符串格式化进行对齐输出 for fruit in fruits: print("{:{}}".format(fruit, max_length)) ``` 在上面的代码,我们首先使用`max`函数找出了集合字符串的最大长度,然后使用字符串格式化方法的`{}`占位符来控制输出的宽度。`{}`的`:`后面的数字`{}`指定了输出的宽度,即最长的字符串长度。这样,所有的字符串都会以同样的宽度对齐输出。 执行上面的代码,输出将会是: ``` apple banana orange ``` 这样就实现了集合以字符串类型输出后在控制台的对齐。 ### 回答3: 在控制台对齐字符串输出可以使用字符串的格式化方法,如下所示: 1. 使用空格填充对齐: 可以使用字符串的`format`方法来对齐字符串输出。例如,假设我们有一个字符串集合`str_set`,包含了若干字符串元素。我们可以使用以下代码将字符串集合按照指定宽度对齐输出: ```python str_set = {"apple", "banana", "grape", "orange"} max_width = max(len(s) for s in str_set) # 获取集合字符串的最大长度 for s in str_set: print("{:<{width}}".format(s, width=max_width)) ``` 这里`:{<}`的`<`表示左对齐,`{width}`表示指定宽度对齐,`max_width`变量表示字符串集合字符串的最大长度。 2. 使用字符串的`ljust`和`rjust`方法对齐: 字符串对象还有`ljust`和`rjust`方法可以分别左对齐和右对齐字符串输出。例如,假设我们有一个字符串集合`str_set`,我们可以使用以下代码左对齐输出: ```python str_set = {"apple", "banana", "grape", "orange"} max_width = max(len(s) for s in str_set) # 获取集合字符串的最大长度 for s in str_set: print(s.ljust(max_width)) ``` 或者使用以下代码右对齐输出: ```python str_set = {"apple", "banana", "grape", "orange"} max_width = max(len(s) for s in str_set) # 获取集合字符串的最大长度 for s in str_set: print(s.rjust(max_width)) ``` 这里`ljust`和`rjust`方法的参数`max_width`表示指定对齐的宽度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霸道流氓气质

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值