【问题标题】:String replace function not replacing characters correctly - Java字符串替换功能没有正确替换字符 - Java
【发布时间】:2011-07-17 05:34:41
【问题描述】:

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

    }
}

【问题讨论】:

    标签: java replace character


    【解决方案1】:

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

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

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

    【讨论】:

    • 啊。所以这只是创建一个 8 为 2 的新字符串并将其重新分配给数字?
    • 完美运行,非常有意义!非常感谢,我很高兴知道这是一个常见错误 =x
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      希望这会有所帮助。

      【讨论】:

      • 另一位用户先回答,但它确实有帮助!谢谢!
      猜你喜欢
      • 1970-01-01
      • 2021-01-27
      • 2011-11-23
      • 2017-10-27
      • 2015-05-02
      • 1970-01-01
      • 1970-01-01
      • 2012-04-26
      • 2011-09-18
      相关资源
      最近更新 更多