0

在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
}
4

3 回答 3

8

我会使用构造函数

public String charArrayToString(char[] array, int startingIndex, int lastIndex) {
    return new String(array, startIndex, lastIndex - startIndex + 1);
}

根据您对结果的处理,更好的解决方案可能是使用 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 )
于 2012-08-21T13:22:31.157 回答
7

听起来像你想要的:

return new String(array, startingIndex, lastIndex + 1 - startingIndex);

startingIndex...对and进行了一些边界检查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);

请注意,如果您将上限设为独占- 就像大多数 Java API 一样 - 您可以摆脱很多这些 +1 和 -1 位。

于 2012-08-21T13:21:25.507 回答
0
public StringBuilder append(char str[], int offset, int len) {
于 2012-08-21T13:23:06.163 回答