运行扫描程序

时间:2014-03-10 01:31:18

标签: java eclipse

我正在尝试编写一个程序,它基本上会读取1,000到999,999之间的任何整数,然后用逗号分隔数千个显示它。到目前为止,我有这个,日食不喜欢它。为什么?

/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
// Scanner scan = new scanner(system.in);
double value, integer;
System.out.println("Enter your value without a comma");
integer = scan.nextdouble();
System.out.println(integer,);
scan.close();

5 个答案:

答案 0 :(得分:1)

至少可以说,您的代码看起来很有问题。首先,您声明Scanner应该被注释的行是什么?如果没有,那可能是问题的一部分。您应该注意将大写System.in传递给扫描仪。您还想使用nextDouble()方法。 (Java区分大小写!)您还要在第二个打印语句中小心,您执行的操作更像System.out.println(integer+",");

答案 1 :(得分:1)

你的代码中有很多错误,这就是为什么eclipse不喜欢它;)

仅举几例:

  • 新扫描仪 - >资本为S
  • 的扫描仪
  • system.in - >与系统相同

查看下面的这个代码段并运行得很好:)

/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone {

public static void main(String[] args) throws java.lang.Exception {

    Scanner scan = new Scanner(System.in);

    double value, intValue;

    System.out.println("Enter your value without a comma");

    intValue = scan.nextDouble();

    System.out.println(intValue);

    scan.close();
}

答案 2 :(得分:1)

首先,解决方案:

import java.text.NumberFormat;
import java.util.Locale;
import java.util.Scanner;

public class Ideone {

     public static void main(String[] args) {
         Scanner scan = new Scanner(System.in);
         System.out.println("Enter a number:");
         long number = scan.nextLong();
         NumberFormat f = NumberFormat.getInstance(Locale.ENGLISH);
         System.out.println(f.format(number));
         scan.close();
     }

}

你的问题代码:

  • 包声明被评论,为什么?
  • 您导入java.lang.*但不使用它。
  • 您的主要方法会抛出java.lang.Exception,但我在您的代码中看不到任何内容。
  • 您已注释掉scan声明。
  • scanner首字母大写(java区分大小写),system
  • 您声明了一个名为double的{​​{1}},但您没有使用它。
  • 你宣布一个名为value的{​​{1}}(当你真正想要的是一个整数时)。
  • 您使用double代替integer(但请记住,您需要一个整数,因此您应该调用scan.nextdouble())。
  • 我没有看到任何代码试图在您的号码中加上“,”。
  • 你打印scan.nextDouble(),这甚至都不是你想要的,你可以尝试scan.nextInt()连接,但它也不是你想要的。
  • 你错过了右括号。
  • 你的代码缩进非常糟糕。

您应该在初学者资源部分查看https://stackoverflow.com/tags/java/info,并尝试了解更多内容并自行解决一些问题。

答案 3 :(得分:0)

为什么你评论了扫描仪的实例化,我也看到了那里的拼写错误。编译器将在未初始化的'scan'对象上抛出异常。

Scanner scan = new Scanner(system.in);

答案 4 :(得分:0)

除了Micah的回答,我建议你检查一下用户的输入,检查范围1000 - 999,999并重新提示用户输入值,如果没有,它将超出范围的目的。

System.out.println("Enter your value without a comma");
integer = scan.nextDouble();
while (integer > 999999 OR integer < 1000)
{
      System.out.println("Please keep your range in between 1000 - 999,999");
      integer = scan.nextDouble();
}