【问题标题】:java Scanner declaringjava扫描仪声明
【发布时间】:2017-03-26 12:49:41
【问题描述】:

我试图声明一个新的扫描仪,它工作正常,但只在主扫描仪上。

当我编写方法时(当然不是主要的),它不会识别扫描仪。

import java.util.Scanner;

public class Exe1GenericSort {

  public static void main(String[] args) {
    Scanner input= new Scanner(System.in);

    start();

    int i = input.nextInt();

}//end main

在这里它工作正常,但在方法“开始”它不会让我使用“input.next ....”

试图写“扫描仪输入=新的扫描仪....上面的主要和仍然无法工作...

【问题讨论】:

  • 你了解范围界定吗?如果你在 main 中创建一个 Scanner,它只能在 main 中使用,除非你将它作为参数传递给另一个方法。
  • 是的..我知道..我用 c 编程了很长时间,现在又回到了 java,但我记得有一种方法可以以某种方式声明扫描仪,所以在 main 之外它仍然可以识别它,(试图声明公共扫描仪输入=新.....)仍然不好......
  • input 变量已在 main 方法中声明,因此只能在 main 方法的范围内使用。
  • 如果两个人在一个房间里谈话,如果你在另一个房间,你会期望知道对方在说什么吗?
  • @RoiZrihan Afaik,C 中的变量作用域与 Java 中的相同。

标签: java eclipse java.util.scanner


【解决方案1】:

你需要将Scanner声明为main函数之外的一个对象,然后你才能在其他函数中使用它。

import java.util.Scanner;

class ScannerTest {

    private static Scanner scanner;

    public static void main(String[] args){
        scanner = new Scanner(System.in);
        start();
    }

    private static void start(){
        String input = scanner.nextLine();
        System.out.println("Input: " + input);
    }
}

注意:scanner 对象和 start 函数必须是静态的,您才能在 main 函数中访问它们。

【讨论】:

    【解决方案2】:
    public static void main(String[] args) {
        Scanner input= new Scanner(System.in);
    
       int x= start(input);
        System.out.println("enter another number");
        int i = input.nextInt();
    
       System.out.println("a number:"+x);
       System.out.println("another number"+i);
    
    
    
    }
    public static int start(Scanner scan)
    {
         System.out.println("Please enter a number");
         int x = scan.nextInt();
         return x;
    
    }
    

    以另一种方法使用扫描仪 在 start() 方法中接受一个参数,然后返回 x 以测试该值,然后在 main 方法中打印该值

    【讨论】:

    • 我认为识别扫描仪的方法还有另一种方法。我会在我的论文中搜索这种方法并将其张贴在这里。但非常感谢你,我不知道这种方法有效太..谢谢兄弟
    • 如果您觉得此答案有帮助,请接受此答案作为您需要了解带参数的方法的答案
    【解决方案3】:

    已解决:

    导入 java.util.Scanner;

    公共类 Exe1GenericSort {

    static Scanner input = new Scanner (System.in);
    public static void main(String[] args) {
    

    这个很好用! 谢谢大家的帮助。

    问题解决了! :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-27
      • 2013-11-15
      • 2021-01-14
      • 2017-08-19
      • 1970-01-01
      • 2019-11-05
      • 2017-10-25
      相关资源
      最近更新 更多