Java中字符串字符的结尾

我正在解决一个简单的问题:

在Java中删除字符数组中的某些字符,想法很简单:

static void remove_char(char[] arr, char c){

int r = 0;

for (int i = 0 ; i < arr.length ; i++){

if (arr[i] == c){

r++;

continue;

}

arr[i - r] = arr[i];

}

arr[arr.length - r] = '\0'; // ??

return;

}

我想输入一个ending character信号,表示当我们想要使用例如生成一个字符串时,不必考虑数组的其余部分new String(arr)

Java中是否有这样的字符?(我想是C\0但我不确定)

例如,当我们调用:

System.out.println(new String(remove_char(new char[] {'s','a','l','a','m'} ,

'a')))

这将被打印: slm m

虽然我想得到,但我不想使用新的数组slm来做到这一点in-place

回答:

Java不会像C那样“标记”字符串的结尾。它跟踪长度和值,因此\0字符串中可以包含零个字符()。如果String从包含char的char数组创建a

\0,则结果String将包含这些字符。

还要注意,数组的大小是静态的-无法调整大小,因此您必须自己跟踪“大小”(String构造函数不会从char数组的末尾为您删除不需要的字符)。

考虑使用以下任一方法:

  • StringBuilder如通过克莱德伯德III,或建议

  • String(char value[], int offset, int count); 您必须以编程方式确定适当的值offset以及count将要使用的适当值。也许String方法(例如replaceconcatsubstring可能会有所帮助。

以上是 Java中字符串字符的结尾 的全部内容, 来源链接: utcz.com/qa/428750.html

回到顶部