字符串替换功能没有正确替换字符 - Java

时间:2011-07-17 05:34:42

标签: java replace character

我正在尝试用字符串中的'2'替换特定字符'8'。我认为我已经正确设置了所有内容,当我在网上查看示例时,看起来应该是这样。当我打印字符串时,就像我输入它一样。要运行它,请使用“80802”或类似输入进行测试。谢谢!

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 );

    }
}

3 个答案:

答案 0 :(得分:6)

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

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

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

答案 1 :(得分:2)

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

答案 2 :(得分: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 );

}

希望这有帮助。