2

私は簡単な質問を解いていました:

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

4

2 に答える 2