Предположим, что ваш файл подобен этому
[/g0]
Затем выберите текст и используйте TextFX Tools
-> Sort lines case insensitive (at column)
. Убедитесь, что вы выбрали Sort outputs only UNIQUE (at columns) line
.
[/g1]
В Java нет никаких «переменных переменных» (то есть переменных с именами переменных), но вы можете создавать карты или массивы для решения вашей конкретной проблемы. Когда вы сталкиваетесь с проблемой, которая заставляет вас думать: «Мне нужно, чтобы мои переменные меняли имена динамически», вы должны попробовать подумать об «ассоциативном массиве». В Java вы получаете ассоциативные массивы, используя Map
s.
То есть вы можете вести Список своих массивов, например:
List<String[]> kList = new ArrayList<String[]>();
for(int k = 0; k < 5; k++){
kList.add(new String[3]);
}
Или, возможно, немного ближе к тому, что вам нужно, вы можете использовать карту:
Map<Integer,String[]> kMap = new HashMap<Integer,String[]>();
for(int k = 0; k < 5; k++){
kMap.put(k, new String[3]);
}
// access using kMap.get(0) etc..
То, что вы хотите сделать, называется метапрограммированием - программированием программы, которую Java не поддерживает (она позволяет метаданные только через аннотации). Однако для такого простого случая использования вы можете создать метод, который будет принимать int и возвращать требуемый строковый массив, например путем доступа к массиву массивов. Если вам нужно более сложное соглашение об именах, рассмотрите оператор swtich для нескольких значений и сопоставьте для большего количества значений. Для фиксированного количества значений с настраиваемыми именами определите Enum, который можно передать в качестве аргумента.
В Java вы получите следующее:
Map<String, String[]> map = new HashMap<String, String[]>();
for (int k=0; k=5; k++){
map.put(Integer.toString(k), new String[3]);
}
// now map.get("3") will get the string array named "3".
Обратите внимание, что «3»
не является переменной, но в сочетании с объект map
работает как один ... вроде.
Другие уже предоставили отличные ответы, но, чтобы охватить все основы, Java действительно имеет массив массивов.
String[][] k = new String[5][3];
k[2][1] = "Hi!";
Теперь у вас нет 5 переменных с именами k1
, k2
, k3
, k4
, k5
], каждая из которых представляет собой String [3]
...
... но у вас есть массив из String []
, k [0]
, k [1]
, k [2]
, k [3]
, k [4]
, каждый из которых является Строка [3]
.