2012-02-24 15 views
1

さて、私は文字列を "abcd"と言います。今私はこのようなブラケットを特定の場所の周りに置くことができる必要があります。たとえば、入力が0(インデックス0の場合)の場合、 "[a] bcd"を保持するStringを返します。入力が2の場合、 "ab [c] d"を返します。これを実装するにはどうすればJavaですか?既にこれを行うことができるStringクラスのメソッドがありますか?Javaの特定の場所にある文字列の文字を置き換えるにはどうすればよいですか?

+1

メソッドの部分文字列を見てから、試したコードを投稿してください。 http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html – mindandmedia

+0

@mindandmedia部分文字列メソッドは、作成者を助けません。再考する。 – sgowd

+0

str.substring(0、input)+ "[" + str.substring(入力、1)+ "]" + str.substring(入力+ 1); ??私はこれが最も読みやすい、何が間違っているのかを知っています。私はコンパイラを持っていません。 – mindandmedia

答えて

3

あなたはStringBuilderで簡単にこれを行うことができます。

// Note that this will need to copy things *twice*, which may be less 
// efficient than just calling replace once, but it's cleaner 
StringBuilder builder = new StringBuilder(text); 
builder.insert(index + 1, ']'); 
builder.insert(index, '['); 
String newText = builder.toString(); 
0

あなたがこれを行うにはStringBufferを使用することができます。

String st = new String("abcd"); 
st = new StringBuffer(st).insert(index+1,"]").insert(index, "[").toString(); 
+0

新しい??新しい? – Gevorg

+0

@Gevorgはい!ありがとう:) –

1

myString = new StringBuilder(myString).insert(2, '[').insert(4,']').toString();

のStringBuilderは文字列で作業するのに役立ちますクールなクラスです。与えられた文字を指定された場所に挿入する方法はinsert(int index, char c)です。示されているように、文字列に新しいStringBuilderを作成し、必要な中カッコを挿入し、toString()メソッドを使用して文字列に戻すことができます。

1

Stringクラスにはreplaceメソッドがあります。 StringBufferとStringBufferには、これらのメソッドもあります。

 int index = 0; 
     String input = "abcd"; 
     //System.out.println(Character.toString(input.charAt(index))); 
     //System.out.println("["+input.charAt(index)+"]"); 
     String output = input.replace(Character.toString(input.charAt(index)), "["+input.charAt(index)+"]"); 
     System.out.println(output); 
+0

これは同じ文字の任意のオカレンスを置き換えますが、OPは特定のポイントで単一のオカレンスを置き換えたいだけです。 –

関連する問題