3

我需要帮助执行以下操作:

  1. 使用 Scanner 类接收输入(我知道了)
  2. 从扫描仪获取输入并使其成为字符串
  3. 用于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);
4

3 回答 3

4
String input = yourScannerObject.nextLine ();

其中“yourScannerObject”是您为扫描仪指定的名称。

于 2013-07-07T18:31:18.930 回答
1

你是用什么方法扫描的?是{scanner object name}.next()吗?

如果是这样,您有一个字符串,您所要做的就是创建一些字符串,并将输入保存到其中,例如:

  • String str="";
  • str = {scanner object name}.next();

在使用 java 中的任何内容之前,我建议您阅读 API:

http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html#next()

于 2013-07-07T18:32:55.363 回答
0

使用 Scanner 类接收输入(我知道了)

从扫描仪获取输入并使其成为字符串

使用 replaceAll 从用户输入中删除数字 0-9。

这是一个例子:

String in;
Scanner scan = new Scanner("4r1e235153a6d 6321414t435hi4s 4524str43i5n5g");
System.out.println(in = (scan.nextLine().replaceAll("[0-9]", ""))); // use .next() for space or tab

输出:

read this string

您的代码中的问题是正则表达式“[^AZ]”被设置为删除所有非字母大写字符。这意味着您也删除了所有小写字母。你可以说“[^a-zA-Z]”,但是你也删除了特殊字符。

于 2017-11-11T18:14:00.740 回答