-1

我有一个这样的字符串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
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

s1.substring(0, 1)然后通过连接和 创建一个字符串 s3 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

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

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

尝试

String no1 ="c1245_f5";
String no2= "456df";
int len=no1.length();
String no3= no1.substring(1,len);
String newNo1=no1.replace(s3, s2);
于 2013-04-26T12:27:00.290 回答