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 我不知道如何在它们之间加点。
答案 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("."))
);