java允许添加重复的字符串_在Java中重复提示,直到字符串中的所有字符都可以加入...

我对

java很新,并试图制作一个罗马数字计算器.我已完成主要编码,但我想添加检查主字符串中“非法”字符的功能.

我创建了一个名为“ValidCheck”的方法来测试字符串中可接受字符列表中的所有字符.

public static boolean ValidCheck(String letter){

boolean okay = true;

for (int i = 0; i < Letters.length; i++){

if (Letters[i] != letter){

okay = false;

}

}

return okay;

}

这是用户的输入.我希望能够打印错误消息,然后重复原始问题,直到字符串可以接受并且ValidCheck == true.

System.out.print("Type in a Roman Numeral value: ");

String roman = kb.next();

for (int i = 0; i < roman.length(); i++){

if (ValidCheck(roman.charAt(i) + "") == false){

System.out.println("Error with input. Unexpected character.");

}

}

恩.

Type in a Roman Numeral : MMDK

Error with input. Unexpected character.

Type in a Roman Numeral :

我想知道我怎么能把它放到一个循环中反复询问,直到输入被认为是可接受的方法?

此外,因为我是一个新的解释它是如何重复以及如何从循环返回值将非常感谢!

最佳答案 我建议将java.util.Scanner与无限循环结合使用.扫描仪易于使用,可解决许多常见任务.

示例代码可能如下所示:

import java.util.Scanner;

public class LoopingInput {

public static void main(String[] args) {

try (Scanner scanner = new Scanner(System.in)) {

for (;;) {

System.out.println("Type in a Roman Numeral value: ");

String nextLine = scanner.nextLine();

if (!nextLine.matches("[IVXLCDM]+")) {

System.out.println("Error with input. Unexpected character.");

}

// you may want to "return nextLine" or similar in an "else" branch

}

}

}

}

说明:

> try(…){…}是一个Java-8功能,它会自动关闭一个对象 – 即使出现意外情况

> System.in是默认输入 – 在大多数情况下是命令行或文件输入

> scanner.nextLine()等待用户输入新行;并返回该行

> nextLine.matches(“[IVXLCDM]”)正在使用正则表达式来验证您的输入.在这种情况下,这非常方便.它搜索任何数量()的IVXLCDM字符.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值