我想从原始路径中删除一些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/
。
答案 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);