2014-01-27 155 views
2

我想从我的原始路径删除一些字符串,但我不能从我原始的字符串替换另一个字符串
如何从另一个字符串替换字符串?

这是我的代码

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

首先,因为String s为在Java中不可变的,你必须重新分配在String变化到另一个参考:

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

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

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

有:

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

String#replace

public String replace(CharSequence target, CharSequence replacement) 
     ↑ 

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

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

然而,你可以简单地做:

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

什么所有你需要做的是

String a=path.substring(0, path.lastIndexOf("=")); 
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); 
相关问题