字符串替换函数未正确替换字符-Java

字符串替换函数未正确替换字符-Java,java,replace,character,Java,Replace,Character,我正在尝试用字符串中的“2”替换特定字符“8”。我想我已经把所有的东西都设置好了,当我在网上寻找例子时,这看起来应该是正确的。但当我打印字符串时,它与我输入的一样。要运行它,请使用“80802”或类似的输入进行测试。谢谢 import java.util.Scanner; class PhoneNumber { public static void main(String[] args) { String number = null; Scanne

我正在尝试用字符串中的“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 );

    }
}

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

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

    number = number.replace('8', '2');
不更改字符串,因为它们是不可变的(不能更改)。相反,这些方法返回一个带有计算值的新字符串。

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


希望这有帮助。

啊。因此,这只需创建一个以8作为2的新字符串,并将其重新分配到数字?就可以完美地工作,而且非常有意义!非常感谢您,我很高兴知道这是一个常见的错误=X其他用户先回答,但它确实有帮助!非常感谢。
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 );

}