Java 对于循环运行时问题,只运行一次
出于某种原因,我的循环确实经过了第一次循环运行,并忽略了数组的其余部分,并且始终使用相同的值。 我的控制台测试代码:Java 对于循环运行时问题,只运行一次,java,arrays,loops,copy,helper,Java,Arrays,Loops,Copy,Helper,出于某种原因,我的循环确实经过了第一次循环运行,并忽略了数组的其余部分,并且始终使用相同的值。 我的控制台测试代码: I计数器:0 运行字符串:| | | 开始计数:0 字符:| 如果:1 空间: 其他:2 开始柜台:2 字符:| 若有:3 开始柜台:3 字符:| 如果:4 空间: 其他:5 临时:8 I-Counter:1 运行字符串:||| 临时:8 I-Counter:2 运行字符串:||| 临时:8 柜台号码:3 运行字符串:||| 临时:8 柜台号码:4 运行字符串:||| 临时:8
I计数器:0
运行字符串:| | |
开始计数:0
字符:|
如果:1
空间:
其他:2
开始柜台:2
字符:|
若有:3
开始柜台:3
字符:|
如果:4
空间:
其他:5
临时:8
I-Counter:1
运行字符串:|||
临时:8
I-Counter:2
运行字符串:|||
临时:8
柜台号码:3
运行字符串:|||
临时:8
柜台号码:4
运行字符串:|||
临时:8
柜台号码:5
运行字符串:|||
临时:8
法尔谢尔码
我真的看不出我的错误
它通过两个循环,然后打印“Falscher代码”,但预期值为
“24118”
这可能是什么原因
import java.util.Arrays;
public class LinearCode {
public static void main(String[] args) {
String s = "| || | |||| |||| || || | ||| || ||"; //Richtige PLZ
System.out.println(calc(s));
}
public static String calc(String s) {
String result = "";
String wrong = "Falscher Code";
int test = 0; //modulo-check
int temp = 0; //temporär
int t = 0; //counter for Checking Array
int Counter = 0; // Counter for the Final Array
int [] finalArray = new int[s.length()];
String[] parts = s.split("(?<=\\G.{6})");
for(int i=0; i<parts.length; i++) {
parts[i] = parts[i].substring(0, 5);
}
int [] check = {0,1,2,4,7}; //Checking Array
for(int i = 0; i < parts.length; i++) {
System.out.println("I-Counter: " + i);
String run = parts[i];
System.out.println("Run-String: " + run);
for(int j=0; j < run.length(); j++) {
if(!(run.charAt(j)== ' ')) {
System.out.println("Beginnung Counter: " + t);
t++;
System.out.println("Char: " + run.charAt(j));
System.out.println("IF: " + t);
}else {
if(t<check.length) {
temp += check[t];
t++;
System.out.println("Space: ");
System.out.println("ELSE: " + t);
}else {
break;
}
}
}
System.out.println("Temporary: " + temp);
if(temp == 11) { temp = 0;}
finalArray[Counter] = temp;
Counter++;
}
finalArray = Arrays.copyOf(finalArray, Counter);
for(int i = 0; i < finalArray.length-1; i++) {
test += finalArray[i];
}
test = (10-(test%10));
if(test == finalArray[finalArray.length-1]) {
for(int i = finalArray.length-1; i > 0; i--) {
result += finalArray[i];
}
return result;
}
return wrong;
}
导入java.util.array;
公共类线性码{
公共静态void main(字符串[]args){
字符串s=“| | | | | | | | | | | | | | | | | |”//Richtige PLZ
系统输出打印项次(计算);
}
公共静态字符串计算(字符串s){
字符串结果=”;
字符串错误=“Falscher代码”;
int test=0;//模检查
int temp=0;//临时
int t=0;//用于检查数组的计数器
int Counter=0;//最终数组的计数器
int[]finalArray=新int[s.length()];
String[]parts=s.split(“(?这似乎是学习如何使用调试器的一个很好的时机,特别是如何使用调试器在监视变量及其值的同时逐条检查代码语句。Eclipse中的调试器在某些情况下不与JRE 13.0.1配合使用reason@Kirby_Sike降级到JDK 11(不能使用JRE进行开发),您的代码没有使用任何JDK 13功能。找不到适用于MacOS的JDK 11。您希望得到什么输出