我解决一个简单的问题:末在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
不使用新的阵列
使用StringBuilder类的问题? http://docs.oracle.com/javase/tutorial/java/data/buffers.html。这可能无助于你找出解决上述问题的办法。它提供了一个解决方案。 – CBIII
正如我所说的,我只想操纵数组,而不使用任何额外的数据结构(即''in-place') –
字符串生成器是一个使用字符串操作数组的字符串类。 – CBIII