如何从另一个String替换String?

时间:2014-01-27 07:27:16

标签: java string

我想从原始路径中删除一些String,但是我无法从原始String中替换另一个字符串

这是我的代码

String path="contentPath =C/Users/consultant.swapnilb/Desktop/swapnil=Z:/Build6.0/Digischool/";
String a=path.substring(path.lastIndexOf("="), path.length());
path.replace(a, "");
System.out.println("a---"+a);
System.out.println("path---"+path);

我只想从原始路径中删除=Z:/Build6.0/Digischool/

4 个答案:

答案 0 :(得分:5)

请参阅String#replace

public String replace(CharSequence target, CharSequence replacement)
       ↑

返回类型为String的新对象,您应该分配结果:

path = path.replace(a, "");

但是,您可以这样做:

path = path.substring(0, path.lastIndexOf("="));

答案 1 :(得分:4)

你需要做的就是

String a=path.substring(0, path.lastIndexOf("="));

答案 2 :(得分:4)

首先,由于String在Java中是不可变的,因此您必须将String中的更改重新分配给另一个引用:

path = path.replace(a, "");

其次,你在那里做额外的工作。您可以替换这些行:

String a=path.substring(path.lastIndexOf("="), path.length());
path.replace(a, "");

使用:

path = path.substring(0, path.lastIndexOf("="));

答案 3 :(得分:0)

String是一个不可变类(由于安全原因),一旦初始化,您就无法为其分配任何其他值。 您必须将子字符串分配给其他字符串对象,然后才能访问它。只需更改您的代码,如下所示,它将起作用。

String path="contentPath =C/Users/consultant.swapnilb/Desktop/swapnil=Z:/Build6.0/Digischool/";
String a=path.substring(path.lastIndexOf("="), path.length());
    String b = path.replace(a, "");
    System.out.println("a---"+a);
    System.out.println("path---"+path);
    System.out.println(b);