我正在解决一个简单的问题:
在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
which 表示当我们想要生成字符串时不必考虑数组的其余部分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