タイトルはちょっと言葉遣いなので、質問をもっとよく説明しようと思います。
したがって、基本的にこのプログラムが行うことは、テキストファイル(このようにソートされている)からインポートされた数値の大きなリストを取得することです。
3679 87
196 60
17914 12
18618 64
2370 65
... ...
etc. (for 45 more lines),
次に、2つの列を2つの異なる配列に並べ替えてから、整数値で並べ替えます。左の列はアイテムID、右の列は在庫数です。
これまでに試したこと:リスト全体を1つの文字列配列にした後、配列を2つの配列リストに分割し、コンマごとに区切ってみました。しかし、私はそれをうまく行うことができませんでした。また、コンマをスキップして次の値を2つの異なる配列リストに追加するforループでそれを実行しようとしました。
これが私の現在のコードです:
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class Store {
public static void main(String[] args) {
// **************Scanner s = new
// Scanner(input).useDelimiter("\\s*,\\s*");
ArrayList<Integer> numbers = new ArrayList<Integer>();
ArrayList<Integer> ids = new ArrayList<Integer>();
ArrayList<Integer> inventory = new ArrayList<Integer>();
ArrayList<String> numbersString = new ArrayList<String>();
try {
int x = 0;
int s = 0;
Scanner in = new Scanner(new File("file50.txt"));
in.useDelimiter(",");
while (in.hasNext()) {// grabs all numbers in text file
String f = in.next();
numbersString.add(f);
String toPrint = "";
for (int i = 0; i < numbersString.size(); i++) {
toPrint += numbersString.get(i) + " ";
}
String[] nums = toPrint.split("\\s+");
// System.out.println(toPrint);
System.out.print(Arrays.toString(nums));
// System.out.print(nums);
}
} catch (Exception i) {
i.printStackTrace();
}
}
}
誰かが私を助けて、私の目標を達成するために私が何をすべきかを提案することができれば、それは大いにありがたいです。それでも私がやろうとしていることを十分に明確にできなかった場合は、私に知らせてください。できる限り説明しようと思います
コードをコピーして貼り付けるのではなく、何をすべきかを考えただけです。
ありがとう