Java 代码不';不允许用户输入字母

Java 代码不';不允许用户输入字母,java,Java,到目前为止,我有一个要求用户输入的代码,但我代码的一部分不接受字母作为输入。例如,如果我输入woah123,它会给我一个数字格式异常。有什么办法可以解决这个问题吗?错误位于第二行int i=Integer.parseInt(句子)。 句子是用户的输入 sentence.replaceAll("\\D", ""); int i = Integer.parseInt(sentence); i = i * 2 ; woah.replaceAll("\\d", "" + i); System.out.p

到目前为止,我有一个要求用户输入的代码,但我代码的一部分不接受字母作为输入。例如,如果我输入woah123,它会给我一个数字格式异常。有什么办法可以解决这个问题吗?错误位于第二行int i=Integer.parseInt(句子)。 句子是用户的输入

sentence.replaceAll("\\D", "");
int i = Integer.parseInt(sentence);
i = i * 2 ;
woah.replaceAll("\\d", "" + i);
System.out.println(woah);

字符串是不可变的

通常,您对一个不可变对象所做的每一次修改都会“给”您另一个不可变对象

因此,它应该是:

sentence = sentence.replaceAll("\\D", "");
实际上,您必须对
woah
执行相同的操作


您可以阅读什么是字符串。

字符串是不可变的

通常,您对一个不可变对象所做的每一次修改都会“给”您另一个不可变对象

因此,它应该是:

sentence = sentence.replaceAll("\\D", "");
实际上,您必须对
woah
执行相同的操作


您可以阅读什么是字符串。

字符串是不可变的。它应该是
句子=句子.replaceAll(\\D“,”)@ZouZou将其发布为answer@ZouZou同样的事情发生在
woah
上。昨天我在“SO”上遇到了同样的问题。怎么了?字符串是不可变的。它应该是
句子=句子.replaceAll(\\D“,”)@ZouZou将其发布为answer@ZouZou同样的事情发生在
woah
上。昨天我在“SO”上遇到了同样的问题。怎么了?假设OP对Java/编程来说可能是新的,这意味着在这个对象上调用的每个方法都不会改变它的状态(不会影响它),或者它会给你一个状态改变了的相同类型的新对象。在这种情况下,由于字符串是不可变的
replaceAll
将为您提供具有更改字符的新字符串对象,但不会影响原始字符串对象,所以,如果你想更新
语句
引用,你需要将
replaceAll
的结果分配给这个引用,就像邹如在他的回答中所示。假设OP可能是Java/编程的新手,这意味着你在这个对象上调用的每个方法都不会改变它的状态(不会影响它),或者,它将为您提供具有更改状态的相同类型的新对象。在这种情况下,由于字符串是不可变的,
replaceAll
将为您提供具有更改字符的新字符串对象,但不会影响原始字符串对象,因此如果您要更新
语句
引用,您需要将
replaceAll
的结果分配给此引用,如邹祖在其回答中所示。