0
点赞
收藏
分享

微信扫一扫

Java 的 StringJoiner 和 Python 里的 .join


Java 中的 ​​StringJoiner​​​ 让我想到了 Python 的 ​​.join​​ 方法。于是不禁发出这样的疑问:

1 Java 中有没有 ​​.join​​ 操作呢?

2 Python 中的是什么样的用法?和 Java 的操作方法上有没有什么相似之处呢?

3 这种字符串拼接出现在什么样的应用场景中?

有了问题,就有了后面的搜索与思考。

首先,回答第一个问题:

Java 中 也有 ​​String.join​​​ 操作。我自己编了一个场景,通过输入台,来输入自己的指令。假装在训练程序,在我心情好的时候,输进去天气很热时的备选清单,然后它输出一下来确定。后面当我问它时,就直接随机抛出来一个给我(后半部分 ​​random​​​ 取 ​​ArrayList​​​ 中的元素即可,代码主要体现 ​​join​​ 有关操作)。

package com.ftech.t;

import java.util.ArrayList;
import java.util.Scanner;
import java.util.StringJoiner;

/**
* 学习 字符串的拼接方法
*
* 试图得到: 天气热了吃啥的回答,将回答的内容一个个的添加到
* 在输出时,用 、 分隔开。最后一个用句号。(更复杂的倒数第二个用和)
*/

public class Join2{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("天气热了,晚上吃啥呢?");
System.out.println("输入 quit 结束回答。");
ArrayList<String> whatToEat = new ArrayList<>();
while (true) {
String food = sc.next();
if (food.equals("quit")) {
break;
}
whatToEat.add(food);
}
String joined = String.join("、", whatToEat); // 方法一:有一个现成的 列表类型变量
System.out.println(joined);

System.out.println("========================");

// 方法二:StringJoiner
StringJoiner sj = new StringJoiner("、", "热的话就吃:", "。");
for

这段代码用到了两种拼接方法:

  1. String.join

String joined2 = String.join("、", whatToEat);  // 方法一:有一个现成的 列表类型变量

如果只用某种分隔符粘起来,那么 ​​String.join​​ 也够用。

  1. StringJoiner

StringJoiner sj = new StringJoiner("、", "热的话就吃:", "。");
for

方法中的三个参数,从左到右依次表示 ​​分隔符,前缀​​​ 和 ​​后缀​​。 在 需要加前后缀 的情况下非常方便。

以下为运行截图:

Java 的 StringJoiner 和 Python 里的 .join_python

接着回答第二个问题,Python 中,目前我知道的没有 joiner 的用法。也有 str.join 的操作,不过是 ​​sep.join(listObject)​​ 的形式。例如:

Java 的 StringJoiner 和 Python 里的 .join_java_02

和 Java 的 ​​String.join​​​ 非常像。一般用在爬虫的时候拼多个属性,再 ​​yield​​ 出去。

最后一个问题呢,其实有点谜底摆在谜面上的意思了。进一步的疑问就是,什么时候会用到字符串拼接呢?

1 拼一个独特的字符串,来 Hash 或者用其他的加密算法作字符串的加密转换,生成一个唯一标识符;

2 拼多个属性,来作为某一个大类的属性;

3 等你补充?

举报

相关推荐

0 条评论