Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 对于循环运行时问题,只运行一次_Java_Arrays_Loops_Copy_Helper - Fatal编程技术网

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。您希望得到什么输出