我有一个文件,其中随机整数行除以“::”。
例如“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
}
}
请记住我是初学者
答案 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