【发布时间】:2017-06-22 21:17:57
【问题描述】:
基本上,我试图让一些 while 循环检查字符串中的特定索引。验证 refNum 长度的第一个循环工作正常。当它到达更大的 while 循环集时,它只是跳过它,我不确定为什么,任何反馈将不胜感激。
package testing_code;
import java.util.Scanner;
/**
*
* @author A.Con
*/
public class Testing_Code
{
public static void main(String[] args)
{
Scanner userInput = new Scanner (System.in);
String refNum;
System.out.println("Enter refNum: example - WE123A");
refNum = userInput.next();
int rnLength = refNum.length();
while(rnLength < 6 || rnLength > 6)
{
System.out.println("Invalid reference number. Try again.\n ");
System.out.println("Please enter reference No.: ");
refNum = userInput.next();
rnLength = refNum.length();
}
while(!(refNum.charAt(0) >= 'A') && !(refNum.charAt(0) <= 'Z') && !(refNum.charAt(1) >= 'A') && !(refNum.charAt(1) <= 'Z'))
{
while(!(refNum.charAt(2) >= '0') && !(refNum.charAt(2) <= '9') && !(refNum.charAt(3) >= '0') && !(refNum.charAt(3) <= '9'))
{
while(!(refNum.charAt(4) >= '0') && !(refNum.charAt(4) <= '9') && !(refNum.charAt(5) >= 'A') && !(refNum.charAt(5) <= 'Z'))
{
System.out.println("Invalid reference number. Try again.\n ");
System.out.println("Please enter reference No.: ");
refNum = userInput.next();
}
}
}
【问题讨论】:
-
那些内部循环看起来并不好。假设第一个条件为真,而内部条件为假。
userInput.nezt()永远不会被调用。你跟着我吗? -
为什么不能使用正则表达式?他们来这里是有原因的。
-
我上的课程想教java的基础,所以他们直到第二年才教我们正则表达式。
标签: java while-loop