【发布时间】:2013-07-05 02:15:51
【问题描述】:
我需要以下帮助:
- 使用 Scanner 类接收输入(我知道了)
- 从扫描仪获取输入并将其设为字符串
- 使用
replaceAll从用户输入中删除数字 0-9。
以下代码是我目前所拥有的,但它只返回用户输入而不是删除数字:
public static void main(String[] args) {
Scanner firstname = new Scanner(System.in);
System.out.println("Please enter your first name:");
String firstname1 = firstname.next();
firstname1.replaceAll("[^0-9]","");
System.out.println(firstname1);
更新的代码。谢谢气垫船。我现在正在研究如何使用下面的代码检索所有字母字符,我只取回用户输入的数值之前的字母:
import java.util.Scanner;
public class Assignment2_A {
public static void main(String[] args) {
Scanner firstname = new Scanner(System.in);
System.out.println("Please enter your first name:");
String firstname1 = firstname.next();
firstname1 = firstname1.replaceAll("[^A-Z]","");
System.out.println(firstname1);
【问题讨论】:
-
这里有问题:
firstname1.replaceAll("[^0-9]","");因为这不会更改 firstname1 字符串,而是 返回 更改后的字符串。您必须将返回的字符串分配给 firstname1 变量:firstname1 = firstname1.replaceAll("[^0-9]","");这是因为 字符串是不可变的。 String 对象一经创建就无法更改,但可以更改 String 变量所引用的 String 对象,这是一个微妙但重要的区别。 -
谢谢你装满鳗鱼的气垫船。多亏了你,我离我越来越近了。我已将我的代码更新为以下内容,现在只能取回数字。我怎样才能将其更新为仅检索字母字符(而不是 0-9)?
标签: java string java.util.scanner replaceall