如何在单个char后替换字符串?

时间:2013-04-26 12:18:13

标签: java string replace

我有一个像String no1="c1245_f5";这样的字符串,我有另一个像这个String no2="456df";的字符串,我想用第二个字符串替换第一个字符串但仅在第一个字符之后。

在这之后我在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);

此处输出仅为第二个字符串。

修改

预期输出:

c456df

我正在获得的输出:

456df

7 个答案:

答案 0 :(得分:5)

不需要String.replaceAll,试试这个

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

答案 1 :(得分:4)

然后通过连接s1.substring(0, 1)s2

创建字符串s3
String s1 ="c1245_f5";
String s2 = "456df";
String s3 = s1.substring(0, 1) + s2; 

它将输出c456df

SEE HERE

答案 2 :(得分:2)

首先,我想到的是使用String.substring(int,int)

所以代码就是这样:

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

查看documentation以获取有关String

功能的更多信息

答案 3 :(得分:0)

您可以按照以下方式执行此操作:

String no1 = "c1245_f5";
String no2 = "456df";
String no3 = no1.charAt(0) + no2;

答案 4 :(得分: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);

答案 5 :(得分:0)

取索引,然后追加第二个字符串。

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

答案 6 :(得分:0)

尝试

String no1 ="c1245_f5";
String no2= "456df";
int len=no1.length();
String no3= no1.substring(1,len);
String newNo1=no1.replace(s3, s2);