【问题标题】:import java.util.Scanner issues in Eclipse在 Eclipse 中导入 java.util.Scanner 问题
【发布时间】:2018-08-15 23:33:52
【问题描述】:

技术:

微软视窗 10,

Eclipse IDE(氧气?主要从网站下载)

Java JDK 9.0.4 和 Java 运行时环境

随着 Oracle 扫描以确认 Java 已设置,我能够使用 Eclipse 编写介绍性的“Hello World”。在开始之前,有人可以确认这是要下载的正确堆栈。一位朋友告诉我我的问题可能是由于 JDK 下载问题,但我一直无法解决。随便...

我是 Java 新手,所以请耐心等待。我正在尝试创建一个简单的素数测试。我研究创建输入的方法是通过 Scanner 类。但是,无论出于何种原因,系统似乎都无法识别我的班级。

import java.util.Scanner;

public class PrimeTest {

public static void main(String[] args) {
    Scanner n = new Scanner(System.in);
    System.out.println(n.nextLine());
    n.close();
}       

public static boolean isPrime(int n) {
    int sqrt = (int) Math.sqrt(n) + 1;
    for (int i = 2; i < sqrt; i++) {
        if (n % i == 0) {
            return false;
        }
    }
    return true;
  } 
}

控制台返回

“错误:无法找到或加载主类扫描仪导致: java.lang.ClassNotFoundException: 扫描器"

在此之前,键入import java.util. 不会弹出扫描仪选项 - 然而,它最终“神奇地”出现了。

另外,我将我的 n 值放在哪里?在控制台中?

谢谢 - 我知道这是一个基本问题,但你必须从某个地方开始。

【问题讨论】:

  • 根据您描述情况和提出问题的方式,我建议您从最基本的开始。当您甚至不知道它们如何工作或如何正确使用变量时,听起来您正在尝试创建和使用函数。在进行试验之前,请研究 Java 中的原始数据类型、变量的使用和方法的使用。猜“isPrime”不是自己写的?无意冒犯。
  • 是的,我需要的是基础知识。我不明白如何将输入创建为变量 - 我会查看您的建议。无意冒犯,isPrime 是通过书籍/朋友/互联网组合编写的。
  • 几乎所有编程语言的编程基础都是相同的。变量和数据类型的工作方式相同,无论是 java、c#、python 还是其他什么。特定的数据类型可能会有所不同,但它们的工作方式是相似的。查看教程点:tutorialspoint.com/java/java_basic_syntax.htm。他们一步一步地解释得很好:)

标签: java eclipse


【解决方案1】:

关于您的“错误”:
根据经验,我可以告诉你日食有其特殊的神奇时刻,当它看起来有问题时,它会突然接受它。这是因为有时 eclipse 的后台进程有点慢,它需要一些时间才能意识到实际发生了什么。我的建议是导入使用Strg+O 或自动补全Strg+Space。通过这种方式,您可以告诉 eclipse 搜索您需要的内容并从它的报价中进行选择,或者如果它只看到一个可能的合适,它就会自动选择它。然后 Eclipse 会立即知道您正在使用什么,而不必等待您停止输入并运行后台进程来找出您要执行的操作。

关于您的计划:
对于从控制台读取/写入到控制台,java 使用InputStreamsOutputStreamsSystem.in 指向用于从控制台读取的InputStreamSystem.out 指向用于在控制台写入的OutputStream

System.in 已经足以从控制台读取。然而,一个简单的InputStream 具有从流中读取的非常基本的方法。使用 ScannerBufferedReader 之类的包装类会更舒服。

Scanner 为您提供了多种读取InputStream 的方法,其中您使用nextLine()。此方法会阻止该过程,直到在控制台上键入换行符(回车)。然后它返回输入为 String 的所有内容。

这个String 现在可以用于多种用途。您可以像现在使用System.out.println(...) 一样将它们打印回控制台,或者您可以将它们用于进一步操作。为此,我建议您将返回值保存在变量中

Scanner scan = new Scanner(System.in);
String readLine = scan.nextLine();
scan.close();

使用该值,您可以进行进一步的操作,例如将其转换为整数

Integer convertedNumber = Integer.parseInt(readLine);

然后你可以用它来调用你的函数isPrime(...)

【讨论】:

    猜你喜欢
    • 2016-06-24
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 2011-09-15
    • 2010-10-25
    • 1970-01-01
    • 2014-02-05
    • 1970-01-01
    相关资源
    最近更新 更多