为了账号安全,请及时绑定邮箱和手机立即绑定

java 中有没有类似string.join

java 中有没有类似string.join

牧羊人nacy 2019-03-22 15:14:39
java 中有没有类似string.join
查看完整描述

2 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

从你问题描述来看...应该是说其他某个语言有个方法是string.join,所以问问java中有没有类似方法与之对应,虽然我不清楚你那个语言里的sting.join代表啥意思,但是java8在String类中更新了一个新的静态方法就叫join,该方法可以把字符串串联起来,类似下面这种

1

2

3

4

5

public static void main(String[] args) {

    String[] arr = {"a", "b", "c"};

    String str = String.join(",", arr);

    System.out.println(str);

}

这个方法一共有两个参数,也好理解,第一个参数是一个连接符号,第二个参数是一个数组,要串联的列表

虽然有这个静态方法,但是在Java8推荐的流使用模式下,更多情况,应该是使用流来处理

1

2

3

4

5

6

7

8

9

10

11

12

13

public static void main(String[] args) {

    String[] arr = {"a", "b", "c"};

    // 无符号连接,最后结果abc

    String str = Arrays.stream(arr).collect(Collectors.joining());

    System.out.println(str);

    // 指定符号连接,最后结果a,b,c

    String str1 = Arrays.stream(arr).collect(Collectors.joining(","));

    System.out.println(str1);

    // 指定符号连接,指定最前和最后,最后结果{a,b,c}

    String str2 = Arrays.stream(arr).collect(Collectors.joining(",", "{", "}"));

    System.out.println(str2);

 

}

这里用到了Collectors.join方法,这个方法比起String.join方法更为强大


 

 


查看完整回答
反对 回复 2019-03-25
?
红颜莎娜

TA贡献1842条经验 获得超12个赞


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

可以使用以下方法:

String org.apache.commons.lang.StringUtils.join(Object[] array, String separator)

 

 

//部分源码如下

public static String join(Object[] array, String separator){

    if (array == null) {

        return null;

    }

    return join(array, separator, 0, array.length);

}

  

public static String join(Object[] array, String separator, int startIndex, int endIndex) {

    if (array == null) {

        return null;

    }

    if (separator == null) {

        separator = "";

    }

    int bufSize = endIndex - startIndex;

    if (bufSize <= 0) {

        return "";

    }

    bufSize *= (((array[startIndex] == null) ? 16 : array[startIndex].toString().length()) + separator.length());

    StringBuffer buf = new StringBuffer(bufSize);

    for (int i = startIndex; i < endIndex; ++i) {

        if (i > startIndex) {

            buf.append(separator);

        }

        if (array[i] != null) {

            buf.append(array[i]);

        }

    }

    return buf.toString();

}

  

//使用示例:

public static void main(String[] args) {

    String[] arr = { "777", "www", "b" };

    System.err.println(StringUtils.join(arr, "&"));

    //输出777&www&b

}

 


查看完整回答
反对 回复 2019-03-25
  • 2 回答
  • 0 关注
  • 729 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信