-1

このような文字列があり、このString no1="c1245_f5";ような別のString no2="456df";文字列があり、最初の文字列を2番目の文字列に置き換えたいのですが、最初の文字の後のみです。

これで、cの後に置き換えました。私の出力は c456df のようでなければなりません。私はこれを行う考えがありません.文字列全体を置き換えようとしました

String no2="456df";
String no1="c1245_f5";
int g;
g=no1.indexOf("c");
int h=no1.indexOf("_", g+1);
no1=no1.substring(g, h);

System.out.println("Number-"+no1);

String rep=no1.replaceAll(no1,no2);

System.out.println(rep);

ここでは、出力は 2 番目の文字列のみです。

編集:

期待される出力:

c456df

私が得ている出力:

456df
4

7 に答える 7

5

String.replaceAll は必要ありません。これを試してください

    String s1 ="c1245_f5";
    String s2 = "456df";
    String s3 = s1.substring(0, 1) + s2;
于 2013-04-26T12:21:12.113 に答える
4

次に、連結して文字列 s3 を作成し s1.substring(0, 1)s2

String s1 ="c1245_f5";
String s2 = "456df";
String s3 = s1.substring(0, 1) + s2; 

それは出力を与えるでしょうc456df

ここを見る

于 2013-04-26T12:21:38.333 に答える
2

私の頭に浮かんだ最初のことは、を使用することString.substring(int,int)です。

したがって、コードは次のようになります。

String tmp=c1.substring(0,1)+no2;
System.out.println(tmp);

の機能の詳細については、ドキュメントStringを参照してください。

于 2013-04-26T12:23:46.170 に答える
0

これは次のように行うことができます。

String no1 = "c1245_f5";
String no2 = "456df";
String no3 = no1.charAt(0) + no2;
于 2013-04-26T12:23:32.203 に答える
0

これを使用することをお勧めします:

String rep = no1.replace(no1.substring(1), no2);

あなたが犯している間違いは、「c」文字の後の最初の位置を考慮する必要があるということです。したがって、indexOf('c') + 1

次のようにする必要があるコードを入力します。

  String no2="456df";
  String no1="c1245_f5";
  String rep = no1.replace(no1.substring(no1.indexOf("c")+1), no2);
  System.out.println(rep);
于 2013-04-26T12:23:47.390 に答える
0

インデックスを取得し、2 番目の文字列を追加します。

String s1 ="c1245_f5";
String index = s1.substring(0, 1)
String s2 = index + "456df";
于 2013-04-26T12:25:32.180 に答える