2文字をchar配列の1文字に置き換えるにはどうすればよいですか?もう少し説明しましょう。私は長さがn
の文字配列を持っています。この文字列では、指定されたインデックスi
の2文字を1文字に置き換えたいと考えています。このプロセスでは配列の長さは1だけ減少します。0
からインデックスi
(i
を除く)のすべての要素をコピーしてから挿入します。インデックスi
で希望の文字を入力し、インデックス(i
を含む)の要素をインデックスn-1
にコピーします。しかし、このプロセスはループを2回必要とします。for
効率的な方法で同じことをすることができるより良いアプローチはありますか?2文字をchar配列の1文字に置き換える
答えて
これを行うより効率的な方法は、char []のラッパーであるStringBuilderを使用して、それをあなたに任せてください。あなたは、それはそれをしない方法を確認するために交換するためのコードを見ることができます
char[] chars = "Hello".toCharArray();
StringBuilder sb = new StringBuilder();
sb.append(chars);
sb.replace(2, 4, "L");
System.out.println(sb);
プリント
HeLo
。
要素を反復する代わりにSystem.arraycopy()の配列部分をコピーします。
新しい配列オブジェクトが必要な場合、各配列要素を1回コピーするよりも速い方法がないため、これ以上の効率的な方法はありません。 System.arraycopy()
への2回の呼び出しを使用する場合は、ループを自分で書き込む必要はありません。
新しい配列オブジェクトを必要としない場合は、上位の配列要素を1つだけ下に移動することができます。これにはコピー数の半分だけが含まれますが、その後は追跡する必要があります他の方法で長さの。
わかりました...私は[こちら]それを得る(http://docs.oracle.com/javase/6/docs/api/java/lang/System.html:Basicで書かれ
#arraycopy%28java.lang.Object、%20int、%20java.lang.Object、%20int、%20int%29)ありがとうございました。 –
1つのforループを使用できます。 iteration(i)= indexを置き換えたいのかどうかを示すIF文を入れ、単なるコピーではなく別の操作をします。
For i = 0 to n - 1
If i = x then
arrayCopy(i) = replaceChars
Else
arrayCopy(i) = arraySource(i)
End If
Next
インデックス「0」からインデックス「n-1」までの「if」条件を毎回チェックすることはおそらくそれほど良くないであろう。これの代わりに、インデックス '0'から' i-1'を索引するための2つの 'for'ループ(' System.arraycopy'を意味します)と索引 'i + 1'の索引' n-1'をそれぞれ選ぶべきです。これにより、パフォーマンスが向上する可能性があります。私が間違っていれば私を訂正してください。 –
2行のコードで行うことができるので、ArrayCopyはより優れています。ちょうど単一のループで行うことができることを指摘していました。 – kazmone1
- 1. char []の配列文字を変更して置き換える
- 2. tr:1文字を2文字に置き換える
- 3. 文字列内の1文字を別の文字列に置き換える
- 4. 文字列の文字を配列の文字に置き換えます
- 5. pandas - 文字列内の1文字を大文字に置き換えます。
- 6. 文字列全体の文字を1文字に置き換えます
- 7. 文字配列の置き換え文字
- 8. 文字列を部分文字列に置き換える
- 9. 1文字の文字列を多くの文字に置き換えますPHPの文字列
- 10. Javascriptを - 文字列複数の文字列に置き換え
- 11. 文字列を別の文字列に置き換えます
- 12. 文字列をBeautifulSoupの文字列に置き換えます。
- 13. ベクトルに格納された文字列を文字に置き換えて文字を置き換えるC++
- 14. 文字列内の文字列を特殊文字に置き換える
- 15. Golangの文字列の中の1文字を置き換えるには?
- 16. 文字列に別の配列から文字を置き換え
- 17. 文字列内である文字を別の文字に置き換えたり、逆の文字を文字列に置き換えたりします。
- 18. 文字列をベクトル文字列に置き換えます。
- 19. 2D char * arrayの文字列値の置き換えc/java jni
- 20. 文字列1から文字列2への文字の置換
- 21. 文字列内の文字を別の文字に置き換える方法
- 22. 特殊文字とその次の文字列を1つの文字列に置き換える方法
- 23. 文字列内の文字を置き換える方法
- 24. 文字列内の文字を置き換える?
- 25. 文字列(文字と数字)の置き換え方法
- 26. 文字列をpreg_replaceの配列に置き換えます。
- 27. R:文字列内の2文字間のドットを置き換える方法
- 28. ファイル内の文字列を他のファイルの文字列に置き換えます。他のファイルの文字列に1回置き換えます。
- 29. 文字列の置き換え前後の文字列の置換
- 30. 文字列に特殊文字を置き換えます。
char配列でStringBuilderインスタンスを作成できますか?私は私の手に文字列を持っています。 –
ピーターありがとう。 –