【问题标题】:Convert String to Int. String value = scanner input.....hard to explain将字符串转换为整数。字符串值 = 扫描仪输入.....很难解释
【发布时间】:2012-08-24 15:22:24
【问题描述】:

好的,我正在尝试转换一些东西。

所以我已经将我的扫描仪转换为字符串,现在我要做的是,获取他们输入的值并将其用作几个 else if 语句的整数。它不会工作!

到目前为止,这是我的代码:

import java.util.Scanner;
public class apples {
public static void main(String args[]) {

    Scanner fname = new Scanner(System.in);
    Scanner sname = new Scanner(System.in);
    Scanner number = new Scanner(System.in);
    tuna weight = new tuna();

    System.out.println("Enter Your First Name: ");
    String fname1 = fname.nextLine();
    String fnames = fname1;

    System.out.println("Enter Your Last Name: ");
    String sname1 = sname.nextLine();
    String snames = sname1;

    System.out.println("Enter Your Weight (Lbs.) : ");
    String num = number.nextLine();
    String num1 = num;

    System.out.println("Okay " + fname1 + " " + sname1
            + " I can see here that you weigh " + num + "lbs.");
    int num2 = num1.parseInt();
    if (num1 >= 275)
        System.out
                .println("You know, you should maybe consider laying off the candy my friend.....");
}

}

【问题讨论】:

  • 一般来说,您不需要三台扫描仪。如果您使用一台扫描仪并调用它 3 次,您将获得相同的结果。这也意味着你不会有类似的变量名 fname 是扫描仪和 fname1 是字符串

标签: java string int java.util.scanner


【解决方案1】:

你应该在parseInt中使用一个参数:

int num2 = Integer.parseInt(num1);

if (num2 >= 275) 
...

【讨论】:

  • 非常感谢!我正在使用 parseInt 但不知道 (num1);部分。再次感谢!
【解决方案2】:

试试这个:

try{
  num2 = Integer.parseInt(num1);
}
catch(Exception ex) {
  System.out.println("Something went wrong, the string could not be converted to int.");
}

try-catch 非常重要,因为字符串可能包含无法转换为 int 的字符,因此您需要比这更好地捕捉它,但请记住这一点

【讨论】:

  • +1 用于异常处理(虽然我更喜欢 ParseException ;))
【解决方案3】:

您也可以使用其他类型的扫描仪方法来获取 int 值

num = number.nextInt();

【讨论】:

    【解决方案4】:

    这是我所做的:

    Scanner input = new Scanner(System.in);
    System.out.println("Type number");
    int number = input.nextInt();
    System.out.println(number);
    

    希望这会有所帮助...

    【讨论】:

      【解决方案5】:

      我自己不是 Java 专家,但我将您的代码调整了一个档次以使其正常工作。这里是。很高兴有帮助。

      p

      ackage APPLE;
      import java.util.Scanner;
      public class apples {
      public static void main(String args[]) {
      
          Scanner fname = new Scanner(System.in);
          Scanner sname = new Scanner(System.in);
          Scanner number = new Scanner(System.in);
          Scanner intScanner = new Scanner(System.in);
      
          System.out.println("Enter Your First Name: ");
          String fname1 = fname.nextLine();
          String fnames = fname1;
      
          System.out.println("Enter Your Last Name: ");
          String sname1 = sname.nextLine();
          String snames = sname1;
      
          System.out.println("Enter Your Weight (Lbs.) : ");
          int num = intScanner.nextInt();
      
      
          System.out.println("Okay " + " " + fname1 + " " + sname1 
                  + " I can see here that you weigh " + num + "lbs.");
      
          if (num > 275){
              System.out.println("You know, you should maybe consider laying off the candy my friend.....");
          }
      }
      }
      

      【讨论】:

      • 回答三年前提出并得到满意回答的问题的目的是什么?最重要的是,您甚至没有费心解释您所做的更改导致您认为它“更上一层楼”。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多