Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 关于转换变量、parseInt以及如何在输出中添加/更改特定数字_Java_Loops - Fatal编程技术网

Java 关于转换变量、parseInt以及如何在输出中添加/更改特定数字

Java 关于转换变量、parseInt以及如何在输出中添加/更改特定数字,java,loops,Java,Loops,我正在编写一个“MasterCardValidator”,它从用户那里读取16位字符串,然后通过Luhn公式,然后声明输入的CC号码是否确实来自有效的MasterCard 在第20行中,我想更改这一行的输出:打印出来的数字(5076802)。我将使用这些数字进行一些算术运算(例如,卢恩公式),但我还没有达到这一步 我已经创建了一个while循环,它遍历用户CC输入所需的字符(第8行),并打印我需要的必要数字,对吗。但我似乎无法处理这些数字,我如何处理一个正则整数 我不确定是否应该为循环创建一个,

我正在编写一个“MasterCardValidator”,它从用户那里读取16位字符串,然后通过Luhn公式,然后声明输入的CC号码是否确实来自有效的MasterCard

在第20行中,我想更改这一行的输出:打印出来的数字(5076802)。我将使用这些数字进行一些算术运算(例如,卢恩公式),但我还没有达到这一步

我已经创建了一个while循环,它遍历用户CC输入所需的字符(第8行),并打印我需要的必要数字,对吗。但我似乎无法处理这些数字,我如何处理一个正则整数

我不确定是否应该为循环创建一个
,然后迭代第20行输出,乘以/修改Luhn公式所需的数字

我已经评论了相关的行号:

System.out.print("Enter a card number for validation: ");
String CCnum = input.next();        // 8, using 2221008763790559

int i = 14;                         // 10

while (i <= 14 && i > 0) {          // 12
   int a = CCnum.charAt(i) - '0';   // 13, The nums needed from original CCnum string in line 8

   i -= 2;                          // 18 

   System.out.print(a + " ");       // 20,  Prints 5 0 7 6 8 0 2             
}
System.out.print(“输入卡号进行验证:”);
字符串CCnum=input.next();//8,使用2221008763790559
int i=14;//10
而(i0){//12
int a=CCnum.charAt(i)-'0';//13,第8行中原始CCnum字符串所需的num
i-=2;//18
System.out.print(a+“”);//20,打印50768802
}

为什么不能将
int
作为正则整数处理?我假设你说的是第13行;或者,您是说不能将第8行中的字符串内容作为常规整数处理?为什么不在while循环结束时应用您的计算,而不是将数字打印出来。您是在问如何打包整数/连接数字?你的乘以10的技巧可以很好地解决这个问题。@smack89好吧,我想我在努力解决你问题的后半部分:我不能将第8行中的内容作为正则整数处理。我想这就是我被难住的地方。但你是对的,事实上,我可以?就像我看到的,我可以打印
a*2
,它只会对每个给我的数字执行:'10 0 14 12 16 0 4'。在正确的轨道上。但是现在我想创建一个循环来挑出大于9的数字…我在阅读的同时接受你们的评论和测试。我想如果你把所有这些数字放在一个数组中开始的话会更容易。最后,如果要打印数组,可以使用
java.util.Arrays.toString(myArray)
将数组转换为字符串