java中使用Scanner进行输入验证
在本教程中,我们将了解在java中如何使用Scanner类进行输入验证。
JavaScanner
类用于从用户获取输入。
它提供了几种方法来获取不同类型的输入并验证输入。其中我们将看到其中一些方法,这些方法可以用来获取用户输入并在java中进行输入验证。
Scanner方法来验证用户输入
|方法|描述|
| --- - | --- |
| Boolean hasnext(字符串模式)|如果下一个令牌匹配从指定字符串构造的模式匹配,则返回true。 |
| Boolean hasnext(模式模式)|如果下一个完整的令牌匹配指定的模式,则返回true。 |
| boolean hasnextbigdecimal()|如果此Scanner的输入中的下一个令牌可以使用NextBigDecimal()方法将解释为BigDecimal,则返回True。 |
| boolean hasnextbiginteger()|如果此Scanner的输入中的下一个令牌可以在使用NextBigInteger()方法中可以在默认基数中解释为BigInteger,则返回True。 |
| Boolean hasnextbiginteger(int Radix)|如果此Scanner的输入中的下一个令牌可以在使用NextBigInteger()方法中可以将其作为BigIntex解释为BigInteger,则返回True。 |
| boolean hasnextboolean()|如果使用从字符串“true | false”创建的不区分大小写模式,可以将其解释为布尔值,则返回true。|
| Boolean hasnextbyte()|如果使用NextByte()方法可以将此Scanner的输入中的下一个令牌解释为默认基数中的字节值,则返回True。 |
| Boolean hasnextByte(int Radix)|如果此Scanner的输入中的下一个令牌可以使用NextByte()方法将解释为指定基数中的字节值,则返回true。 |
| boolean hasnextdouble()|如果此Scanner的输入中的下一个令牌可以使用NextDouble()方法可以将其解释为双重值,则返回true。 |
| boolean hasnextfloat()|如果此Scanner的输入中的下一个令牌可以使用NextFloat()方法可以将其解释为浮点值,则返回true。 |
| Boolean hasnextint()|如果此Scanner的输入中的下一个令牌可以将其解释为使用NextInt()方法的默认基数中的int值,则返回true。 |
| Boolean Hasnextint(int Radix)|如果此Scanner的输入中的下一个令牌可以使用nextint()方法可以将此Scanner输入中的下一个标记解释为指定基数中的int值,则返回true。 |
| Boolean hasnextline()|如果此Scanner输入中有另外一行,则返回true。 |
| Boolean hasnextlong()|如果此Scanner的输入中的下一个令牌可以在使用NextLong()方法中可以将此Scanner的输入中的下一个令牌解释为长值,则返回true。 |
| Boolean hasnextlong(int Radix)|如果此Scanner的输入中的下一个令牌可以使用NextLong()方法可以将此Scanner的输入中的下一个令牌解释为LONG值,则返回true。 |
| Boolean hasnextshort()|如果使用NextShort()方法可以将此Scanner的输入中的下一个令牌解释为默认基数中的短值,则返回true。 |
| Boolean hasnextshort(int Radix)|如果使用NextShort()方法可以将此Scanner输入中的下一个令牌解释为指定基数中的短值,则返回true。 |
Scanner方法获取用户输入
|方法|描述|
| --- - | --- |
| String Next(字符串模式)|如果匹配从指定的字符串构造的模式,它会返回下一个令牌。 |
|字符串下一个(图案模式)|如果匹配指定的模式,则返回下一个令牌。 |
| Bigdecimal NextBigdecimal()|它将输入的下一个令牌扫描为BigDecimal。 |
| BigInteger NextBiginteger()|它将输入的下一个标记扫描为BIGINTEGER。 |
| Biginteger NextBiginteger(int Radix)|它将输入的下一个标记扫描为BIGINTEGER。 |
| Boolean NextBoolean()|它将输入的下一个令牌扫描到布尔值并返回该值。 |
|字节NextByte()|它将输入的下一个令牌扫描为字节。 |
|字节NeuttByte(int Radix)|它将输入的下一个令牌扫描为字节。 |
| Double NextDouble()|它将输入的下一个令牌扫描为双倍。 |
| float nextfloat()|它将输入的下一个令牌扫描为浮点数。 |
| INT nextInt()|它将输入的下一个令牌扫描为int。 |
| INT nextInt(int Radix)|它将输入的下一个令牌扫描为int。 |
|字符串Nextline()|它推进了此Scanner超过当前行,并返回跳过的输入。 |
|长期()|它会扫描输入的下一个令牌。 |
|长期龙(int Radix)|它会扫描输入的下一个令牌。 |
| short nextshort()|它扫描了输入的下一个令牌。 |
|短nextshort(int Radix)|它扫描了输入的下一个令牌。 |
使用Scanner类进行输入验证
我们可以使用不同的输入验证进行不同类型的输入验证 hasNextXXX()
方法。
使用Java中使用Scanner验证整数输入
我们可以用 hasNextInt()
检查输入是否为整数的方法,然后使用 nextInt()
方法。
请参阅下面的示例。
import java.util.Scanner; public class Main { public static void main(String args[]) { int input = 0; System.out.println("Enter an Integer value "); Scanner sc = new Scanner(System.in); if(sc.hasNextInt()) { input = sc.nextInt(); if(input>0) System.out.println("You entered a positive integer "+input); else { System.out.println("You entered a negative integer "+input); } }else { System.out.println("Please Enter Valid Integer"); } } }
输出
Enter an Integer value 50 You entered a positive integer 50
使用Java中使用Scanner进行验证浮点输入
验证浮点值,我们使用过 hasNextDouble()
如果输入浮动类型,则返回true的方法 nextDouble()
方法用于获取用户输入。
import java.util.Scanner; public class Main { static Double input; public static void main(String args[]) { System.out.println("Enter a floating point value "); Scanner sc = new Scanner(System.in); if(sc.hasNextDouble()) { input = sc.nextDouble(); if(input>0) System.out.println("You entered a positive value "+input); else { System.out.println("You entered a negative value "+input); } }else { System.out.println("Please Enter a Valid Value"); } } }
输出:
Enter a floating point value 25.21 You entered a positive value 25.21
在Java中使用Scanner验证布尔输入
我们可以用 hasNextBoolean()
检查输入是否是有效布尔的方法和 nextBoolean()
方法用于获取输入值。
import java.util.Scanner; public class Main { static Boolean input; public static void main(String args[]) { System.out.println("Enter a boolean value "); Scanner sc = new Scanner(System.in); if(sc.hasNextBoolean()) { input = sc.nextBoolean(); System.out.println("You entered a boolean value "+input); }else { System.out.println("Please Enter a Valid Value"); } } }
输出
Enter a boolean value false You entered a boolean value false
使用Scanner在Java中验证字符串输入
要验证字符串值,我们可以使用 regex
以特定格式获取字符串。
其中这是 hasNext()
拍摄regex验证只能包含字母表的字符串。
请参阅下面的示例。
import java.util.Scanner; public class Main { static String input; public static void main(String args[]) { System.out.println("Enter a String "); Scanner sc = new Scanner(System.in); if(sc.hasNext("[A-Za-z]*")) { input = sc.next(); System.out.println("You entered a string value "+input); }else { System.out.println("Please Enter a Valid Value"); } } }
输出
Enter a String java You entered a string value java