2013-12-20 89 views
-1

我想用空字符串“”替换字符串中的“,”。 我相信下面的代码是正确的,但是当我用Eclipse运行它时。它不起作用。这有什么错我的代码和我应该怎么纠正我应该如何替换空字符串的单个字符

String fullName = "lastname, firstname", lastName, firstName; 

    String[] parts = fullName.split(" "); 
    String firstPart = parts[0]; 
    String secondPart = parts[1]; 

    if (firstPart.contains(",")) { 
     firstPart.replace(",", ""); 
     firstPart.trim(); 
     secondPart.trim(); 
     lastName = firstPart; 
     firstName = secondPart; } 

回答

6

一个Java String是不变的值,所以没有功能改变String实例,只是建立一个新的:

string = string.replace(",",""); 

这适用于在您的示例中应该更改String本身内容的每种方法。

Javadoc来自:

字符串是常数;它们的值在创建后无法更改。

+0

我明白了〜我忘了把它分配给一个变量改变它后大声笑谢谢你的信息^ _ ^ – user2789240

4

改变你的代码

firstPart = firstPart.replace(",","") 

您还没有assinged这就是为什么

0

我会做这样的 -

public static void main(String[] args) { 
    String[] names = new String[] { "Frisch, Elliott", 
     "Elliott Frisch" }; 
    for (String fullName : names) { 
    String last = ""; 
    String first = ""; 
    int p = fullName.indexOf(','); 
    if (p > -1) { 
     last = fullName.substring(0, p).trim(); 
     first = fullName.substring(p + 1, 
      fullName.length()).trim(); 
    } else { 
     p = fullName.indexOf(' '); 
     if (p > -1) { 
     first = fullName.substring(0, p).trim(); 
     last = fullName.substring(p + 1, 
      fullName.length()).trim(); 
     } 
    } 
    System.out.printf(
     "firstname = '%s', lastname = '%s'\n", 
     first, last); 
    } 
} 

哪些相同(两次),也就是打印我的名字 -

firstname = 'Elliott', lastname = 'Frisch' 
firstname = 'Elliott', lastname = 'Frisch'