char数组转换为String并在字符之间放置点

时间:2019-11-13 20:37:10

标签: java

public static String arrayToString(char[] array) {
            String newstring = new String(array);
            for(int c=0; c<array.length; c++) 
                }
            }
            return newstring;

我想将char数组更改为String并执行例如['a','b','c','d'] ---> a.b.c.d 我不知道如何在它们之间加点。

5 个答案:

答案 0 :(得分:2)

您可以尝试这样的操作(这是利用Java 8流):

-1

然后在您的方法调用中:

public static String arrayToString(char[] array, String delimiter) {
  String newstring = IntStream.range(0, array.length)
                                    .mapToObj(i -> String.valueOf(array[i]))
                                    .collect(Collectors.joining(delimiter));
  return newstring;
}

输出将是: char[] array = new char[]{'a', 'b', 'c', 'd'}; String fmtString = arrayToString(array, ".");

答案 1 :(得分:0)

由于您显然是初学者,因此请避免使用Java 8流。

int dotCount = array.length -1;
char[] newArray = new char[array.length + dotCount];

// copy the characters 
for(int index = 0; index < array.length; index++) {
  newArray[2*index] = array[index];
}

// fill the dots
for(int dotIndex = 0; dotIndex < dotCount; dotIndex++) {
  newArray[2* dotIndex + 1] = '.';
}

return new String(newArray);

答案 2 :(得分:0)

或者如果您使用Java版本<8,或者只是不想使用Streams,则可以执行以下操作:

const url = 'mongodb://user:password@someurl.com:27017/bta?ssl=true&authSource=admin';

答案 3 :(得分:0)

另一种方法是使用带有for的增强StringBuilder循环,尽管在附加到{{1 }},通常应改为String

String

StringBuilder用于传递空数组的情况。

这是通过在每次迭代中向每个字符附加public static String arrayToString(char[] array) { if (array.length == 0) { return ""; } StringBuilder sb = new StringBuilder(); for (char c : array) { sb.append(c); sb.append('.'); } return sb.toString().substring(0, sb.length() - 1); } 的定界符,然后删除if (array.length == 0)中的最后一个字符(这是不需要的额外定界符)来实现的。

测试运行:

.

输出:

  

a.b.c

答案 4 :(得分:0)

其他方式:

char[] array = new char[]{'a', 'b', 'c', 'd'};
System.out.println(
        Stream.of(new String(array).split(""))
                .collect(Collectors.joining("."))
);