从临时数组中生成数组

时间:2016-10-08 19:10:08

标签: java arrays

我有一个文件,其中随机整数行除以“::”。

例如“1 2 3 :: 4 5 :: 6 7 8 9 :: 10 11 12 :: 13”

我想要的是一个数组,其中的行组合如下:取第二行并放在第一行的后面,然后取第三行放在第一行的前面,取第四行划排并放在后面等。

目前我可以用一行填充一个临时数组并将其放在totalArray中但是这将被下一行覆盖。 我不能使用ArrayList或多维数组。

使代码更清晰的代码:

class1() {
    in = new Scanner(System.in);
    out = new PrintStream(System.out);

}
public void lineToArray (Scanner intScanner) {
    int i = 0;
    int[] tempArray = new int[100];

    while (intScanner.hasNext()) {
        tempArray[i] = intScanner.nextInt();
        i++;
    }
}
public void readFile() {
    while (in.hasNext()) {
        in.useDelimiter("::");
        String line = in.next();

        Scanner lineScanner = new Scanner(line);
        lineToArray(lineScanner);
    }
}
void start() {
    readFile();
}

public class Class2 {
     int[] totalArray = new int[1000];

Class2() {
}

public void addToFront(int[] tempArray, int i) {
    //totalArray = tempArray + totalArray
}   
public void addToBack(int[] tempArray, int i) {
    //totalArray = totalArray + tempArray
}

public static void main(String[] args) {
    // TODO Auto-generated method stub

}

}

请记住我是初学者

1 个答案:

答案 0 :(得分:1)

public static void main(String args[]) throws IOException
{
    Scanner in = new Scanner(System.in);
    PrintWriter w = new PrintWriter(System.out);
    String inp = in.nextLine();
    String s[] = inp.split("::");
    StringBuilder ans = new StringBuilder();
    for(int i = 0; i < s.length; i++){
        if(i == 0){
            ans.append(s[i]);
        }
        else if(i%2 == 0){
            ans.append("::"+s[i]);
        } else{
            ans.reverse();
            StringBuilder add = new StringBuilder(s[i]);
            add.reverse();
            ans.append("::"+add);
            ans.reverse();
        }
    }
    w.println(ans);
    w.close();
}

<强>输出:
1 2 3::4 5:: 6 7 8 9::10 11 12::13
10 11 12::4 5::1 2 3:: 6 7 8 9::13