String.replace结果被忽略吗?

use*_*027 2 java string replace

所以我使用的是IntelliJ,替换流行语突出显示。大多数技巧都困扰着我,所以我忽略了它们,但是我得到的却是string.replace的结果被忽略了。为什么?

我需要类似(string = string.replace(string.charAt(i));)的东西吗?

import java.util.Scanner;

public class PhoneNumberDecipher {
    public static String phoneNumber;
    public static String Decipher(String string) {
        string = phoneNumber;
        for(int i =0; i<=phoneNumber.length(); i++) {
            if(string.equalsIgnoreCase("A")
               ||string.equalsIgnoreCase("B")
               ||string.equalsIgnoreCase("C")) {
                string.replace(string.charAt(i),'2')
            }
            else if(string.equalsIgnoreCase("D")
                    ||string.equalsIgnoreCase("E")
                    ||string.equalsIgnoreCase("F")) {
                string.replace(string.charAt(i),'3');
            }
            else if(string.equalsIgnoreCase("G")
                    ||string.equalsIgnoreCase("H")
                    ||string.equalsIgnoreCase("I")) {
                string.replace(string.charAt(i),'4');
            }
            else if(string.equalsIgnoreCase("J")
                    ||string.equalsIgnoreCase("K")
                    ||string.equalsIgnoreCase("L")) {
                string.replace(string.charAt(i),'5');
            }
            else if(string.equalsIgnoreCase("M")
                    ||string.equalsIgnoreCase("N")
                    ||string.equalsIgnoreCase("O")) {
                string.replace(string.charAt(i),'6');
            }
            else if(string.equalsIgnoreCase("P")
                    ||string.equalsIgnoreCase("Q")
                    ||string.equalsIgnoreCase("R")
                    || string.equalsIgnoreCase("S")) {
                string.replace(string.charAt(i),'7');
            }
            else if(string.equalsIgnoreCase("T")
                    ||string.equalsIgnoreCase("U")
                    ||string.equalsIgnoreCase("V")) {
                string.replace(string.charAt(i),'8');
            }
            else if(string.equalsIgnoreCase("W")
                    ||string.equalsIgnoreCase("X")
                    ||string.equalsIgnoreCase("Y")
                    ||string.equalsIgnoreCase("Z")) {
                string.replace(string.charAt(i),'9');
            }
        }

        return string;
    }

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.println("Please Enter a Phone Number you Wish to Decipher...");
        phoneNumber = input.nextLine();

        System.out.print(Decipher(phoneNumber));
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 5

String对象是不可变的

文档

public String replace(char oldChar,char newChar)

返回一个字符串,该字符串是用newChar替换此字符串中所有出现的oldChar的结果。

希望这可以帮助。