【问题标题】:How to take a scanner object and make it a String如何获取扫描仪对象并使其成为字符串
【发布时间】:2013-07-05 02:15:51
【问题描述】:

我需要以下帮助:

  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);

【问题讨论】:

  • 这里有问题:firstname1.replaceAll("[^0-9]",""); 因为这不会更改 firstname1 字符串,而是 返回 更改后的字符串。您必须将返回的字符串分配给 firstname1 变量:firstname1 = firstname1.replaceAll("[^0-9]",""); 这是因为 字符串是不可变的。 String 对象一经创建就无法更改,但可以更改 String 变量所引用的 String 对象,这是一个微妙但重要的区别。
  • 谢谢你装满鳗鱼的气垫船。多亏了你,我离我越来越近了。我已将我的代码更新为以下内容,现在只能取回数字。我怎样才能将其更新为仅检索字母字符(而不是 0-9)?

标签: java string java.util.scanner replaceall


【解决方案1】:
String input = yourScannerObject.nextLine ();

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

【讨论】:

    【解决方案2】:

    您使用什么方法进行扫描?是{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()

    【讨论】:

      【解决方案3】:

      使用 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
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-04
        • 1970-01-01
        • 2012-12-06
        • 2011-02-05
        相关资源
        最近更新 更多