2011-07-17 207 views
0

我想用字符串中的'2'替换特定字符'8'。我想我已经正确设置了一切,当我在网上查找示例时,看起来应该如此。当我打印字符串时,就像我输入字符串一样。要运行它,用“80802”或类似的输入测试它。谢谢!字符串替换功能不正确替换字符 - Java

import java.util.Scanner; 

class PhoneNumber { 

    public static void main(String[] args) { 

     String number = null; 

     Scanner scan = new Scanner(System.in); 

     // Prompt the user for a telephone number 
     System.out.print("Enter your telephone number: "); 

     // Input the user's name 
     number = scan.nextLine(); 

     // Replace the relevant letters with numbers 
     number.replace('8', '2'); 

     System.out.println("Your number is: " + number); 

    } 
} 

回答

6

一个常见的错误...你想:

number = number.replace('8', '2'); 

String.replace()不会改变字符串,因为Strings是不可变的(它们无法更改)。相反,这种方法返回一个新的字符串与计算值。

+0

啊。所以这只是创建一个8的2作为新的字符串,并重新分配数量? –

+0

完美的作品,非常有意义!非常感谢你,我很高兴知道这是一个常见的错误= x –

2

number.replace()返回一个新的字符串。它不会改变`数字'。

+0

谢谢。我很感激。 –

0

number.replace('8','2');返回正确的字符串,它不会修改数字。要获得所需的功能,您必须键入 number = number.replace('8','2');

public static void main(String[] args) { 

    String number = null; 

    Scanner scan = new Scanner(System.in); 

    // Prompt the user for a telephone number 
    System.out.print("Enter your telephone number: "); 

    // Input the user's name 
    number = scan.nextLine(); 

    // Replace the relevant letters with numbers 
    number = number.replace('8', '2'); 

    System.out.println("Your number is: " + number); 

} 

希望这会有所帮助。

+0

另一位用户首先回答,但确实有帮助!谢谢! –