我解決一個簡單的問題:末在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