2015-05-29 58 views
-1
  1. 我试图在多个班级,功能
  2. 来替换多个字符串为什么这个例子不工作?字符串替换Java函数

    public static String symbole(String sym) 
    { 
    sym = sym.replace("&" , "§"); 
    sym = sym.replace("[<3]" , "\u2764"); 
    return sym; 
    } 
    String test = "This Dont work... why [<3]"; 
    symbole(test); 
    

我怎么能代替这个... 什么建议吗? 请帮忙给我完美的英语

+0

工作正常,我。你在看什么? –

+5

你是什么意思“它不起作用?”。它运作良好。你面临什么问题? – K139

+0

你能提供一些例子给字符串和预期的替换吗? – MaxZoom

回答

2

您的问题很可能是因为您期望您的函数改变了您传递给方法的原始字符串。

字符串是在java中不可变的,再说,你不能修改传递给方法,从该方法原始参考。

要获得最可能期望的结果,请将方法的返回值存储在新引用中,或将测试参考点存储为返回的String。

所以,你可以尝试:

test = symbole(test); 

String replacedTest = symbole(test): 
2

下面的语句遗憾:

sym.replace("[<3]", "\u2764"); 

工程,将与“心脏”字符替换[<3]

我想你的问题是,你认为test将被修改,当你将它传递给该方法。这是行不通的,因为String是不可变的;呼叫replace实际返回一个新的String实例。由于Java是按值传递的,因此无法将其分配回sym,并且期望test发生更改,并且无法重新设置引用。但是,因为你已经返回修改后的字符串,你只需要返回值分配回test

test = symbole(test); 

您还可以,如果你想分配到一个新的变量:

String modified = symbole(test);