我正在尝试将字符串中的特定字符“8”替换为“2”。我认为我已经正确地设置了所有内容,当我在网上查找示例时,这看起来应该是正确的。但是,当我打印字符串时,它与我输入的字符串一样。要运行它,请使用"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 );
}
}发布于 2011-07-17 13:37:08
一个常见的错误。您需要:
number = number.replace('8', '2');String.replace()不会改变字符串,因为Strings是不可变的(它们是不能改变的)。相反,这些方法返回一个带有计算值的新字符串。
发布于 2011-07-17 13:36:36
number.replace()返回一个新字符串。它不会改变‘`number’。
发布于 2011-07-17 13:43:23
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 );
}希望这能有所帮助。
https://stackoverflow.com/questions/6722110
复制相似问题