Blu*_*ire 0 java string type-conversion char
在Java中,是否有一个预制方法可以用来获取字符数组的一些选定索引,将这些索引定义的术语粘在一起并将其作为字符串返回?我在这里寻找方法的原因是我想避免创建另一个数组来保存我选择的值.我正在寻找的东西是这样的:
public String charArrayToString(char[] array, int startingIndex, int lastIndex) {
// ignore any index that is outside of the startingIndex - lastIndex range
// turn array[startingIndex], array[startingIndex + 1] ... array[lastIndex] into a string
}
Run Code Online (Sandbox Code Playgroud)
听起来像你想要的:
return new String(array, startingIndex, lastIndex + 1 - startingIndex);
Run Code Online (Sandbox Code Playgroud)
......已经做了一些边界检查startingIndex和lastIndex,如
startingIndex = Math.max(startingIndex, 0);
lastIndex = Math.min(lastIndex, array.length - 1);
if (startingIndex > lastIndex) {
// Return empty string? Throw an exception?
}
return new String(array, startingIndex, lastIndex + 1 - startingIndex);
Run Code Online (Sandbox Code Playgroud)
请注意,如果您将上限设为独占 - 就像大多数Java API一样 - 您可以删除大量的这些+1和-1位.
我会使用构造函数
public String charArrayToString(char[] array, int startingIndex, int lastIndex) {
return new String(array, startIndex, lastIndex - startIndex + 1);
}
Run Code Online (Sandbox Code Playgroud)
根据您对结果的处理方式,更好的解决方案可能是使用StringBuilder.append
char[] coords = "000175001022".toCharArray();
StringBuilder sb = new StringBuilder();
sb.append("( ");
sb.append(coords, 0, 6);
sb.append(", ");
sb.append(coords, 6, 6);
sb.append(" )");
System.out.println(sb); // prints ( 000175, 001022 )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6191 次 |
| 最近记录: |