将字符串解析为整数

Parsing a String to an Integer

所以我最大的问题是我似乎不记得如何将字符串解析为 int 以便我可以对我的代码进行白痴验证。我的目标是找出用户输入的是单词而不是 int,然后我可以向他们解释整数是什么。有人可以帮忙吗?我只需要一个简单的解析命令列表,以便我可以研究它们以备将来使用,一旦有了一个简单的列表,我想我就能从那里找出所有其他命令。

import java.util.Scanner;
import java.util.*;
public class SelfTestNumberNine
{
   public static void main(String[] args)
   {
   boolean test = false;
   int num = 0;
   int sum = 0;
   int count = 0;
   int pos = 0;
   int neg = 0;
   Scanner in = new Scanner(System.in);
   while(!test)
   {
      num = 0;
      System.out.print("Enter in an Integer Value: ");
      String letta = in.next();
      if(??parsing stuff goes here!!)
      {
         num = in.nextInt();
         count++;
         if(num > 0)
         {
            pos++;
            sum = sum + num;
         }
         else if(num < 0)
         {
            neg++;
            sum = num + sum;
         }
         else
         {
             test = true;
         }
      }
      else
      {
         System.out.println("An Integer is a number that is positive or 
         negative,\nand does not include a decimal point.");
      }
   }//end while

   System.out.println("Total:   " + sum);
   double avg = sum / count;
   System.out.println("Average: " + avg);
  }//end main
}//end class

基本上,该程序要求用户输入整数,计算正数和负数,并打印出总数和平均值(忽略 0)。当用户输入 0 时程序结束。

P.S。谢谢你的时间!! ]:-)

您可以通过两种方式完成此操作。

- Integer.parseInt()
- Integer.valueOf()

String myStr = "1";

int parsedInt = Integer.parseInt(myStr);
int valueOf = Integer.valueOf(myStr);

System.out.println("Parse Int: " + parsedInt);
System.out.println("Value Of: " + valueOf);

注意:如果输入不可解析,您可能会遇到异常。 NumberFormatException.

您可以使用布尔方法和 try-catch 来检查是否可以将字符串解析为整数。

public static boolean isInteger(String s) {
    try { 
        Integer.parseInt(s); 
    } catch(NumberFormatException e) { 
        return false; 
    } catch(NullPointerException e) {
        return false;
    }
    // only got here if we didn't return false
    return true;
}

如果你想确保用户输入 int 而不会抛出异常,你可以使用 hasNextInt() 方法:

System.out.println("Enter an int (0) to quit");
//While the user has not entered a valid int
while (!input.hasNextInt()) {
    System.out.println("Please enter an integer: ");
    //Consume the bad input
    input.nextLine();
}

这将循环直到他们输入一个有效的 int。示例 运行(- 表示用户输入):

Enter an int (0 to quit)
-No
Please enter an integer: 
-Never!!
Please enter an integer: 
-Ok ok fine
Please enter an integer: 
-3