输入 验证 java_Java使用扫描程序时如何验证输入?

此示例显示了使用时如何验证输入java.util.Scanner。为了验证输入,Scanner该类提供了一些hasNextXXX()可用于验证输入的方法。例如,如果我们要检查输入是否为有效整数,可以使用该hasNextInt()方法。

在下面的代码片段中,将演示如何验证用户是否提供正整数。程序将重复执行,直到提供正确的输入为止。package org.nhooo.example.util;

import java.util.Scanner;

public class ScannerValidateInput {

public static void main(String[] args) {

ScannerValidateInput demo = new ScannerValidateInput();

demo.validatePositiveNumber();

}

private void validatePositiveNumber() {

Scanner scanner = new Scanner(System.in);

int number;

do {

System.out.print("Please enter a positive number: ");

while (!scanner.hasNextInt()) {

String input = scanner.next();

System.out.printf("\"%s\" is not a valid number.\n", input);

}

number = scanner.nextInt();

} while (number 

System.out.printf("You have entered a positive number %d.\n", number);

}

}

代码段产生的输出:Please enter a positive number: qwerty

"qwerty" is not a valid number.

@@@

"@@@" is not a valid number.

-100

Please enter a positive number: 99

You have entered a positive number 99.

另一个示例是验证用户是否正确输入了字母来邀请一个秘密单词。在下面的代码段中,如果用户未输入字母,则该代码将继续要求输入有效的字母。循环直到输入字母的长度等于秘密单词的长度。private void validateLetter() {

String secretWord = "Hello";

Scanner scanner = new Scanner(System.in);

int length = 0;

StringBuilder guess = new StringBuilder();

do {

System.out.print("Enter a letter to guess: ");

char letter = scanner.next().charAt(0);

if (Character.isLetter(letter)) {

guess.append(letter);

length++;

}

} while (length 

if (secretWord.equalsIgnoreCase(guess.toString())) {

System.out.println("You are correct!");

} else {

System.out.println("Please try again!");

}

}Enter a letter to guess: 1

Enter a letter to guess: 2

Enter a letter to guess: H

Enter a letter to guess: e

Enter a letter to guess: l

Enter a letter to guess: l

Enter a letter to guess: o

You are correct!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值