2015-12-17 5 views
-9

Я хотел бы разбить строку и объединить ее.Java Split String and Combine

String value = "1,A 2,B 3,C" 

выходы

[1,2 A,B] 
[1,3 A,C] 
[2,3 B,C] 

Если я делаю String[] tokens = value.split("[,\\s]+");
tokens[0] = "1"tokens[1] = "A"tokens[2] = "2"tokens[3] = "B" и так далее.
Но тогда как я могу объединить его, что станет выходом? Спасибо.

+0

Это не очень понятно, что вы требование здесь. Вы хотите, чтобы все возможные перестановки, например, должны были включать в себя '[1,3 B, C]' или '[1,2 A, C]'? Если нет, почему бы и нет? – DaveyDaveDave

+0

@DaveyDaveDave '[1,3 B, C]' или '[1,2 A, C]' не требуются. потому что '1, A''2, B''3, C' - пара. поэтому 'A' не следует комбинировать с' C', если '1' сочетается с' 2' – user2875021

+0

Я вижу, так что комментарий Сатья будет хорошим началом, сначала разбитым на пробел ('value.split (" \\ s ") '), то у вас есть пары, которые вы хотите, а затем вы можете снова разбить запятую и соответствующим образом соединить. – DaveyDaveDave

ответ

0

Вы можете разделить и объединить его, делая это:

String a = value.charAt(0)+","+value.charAt(4)+" "+value.charAt(2)+","+value.charAt(6); 
String b = value.charAt(0)+","+value.charAt(8)+" "+value.charAt(2)+","+value.charAt(10); 
String c = value.charAt(4)+","+value.charAt(8)+" "+value.charAt(6)+","+value.charAt(10); 
+0

с этим методом, это жесткое кодирование. и приведенное выше является лишь примером. Для того, что мне нужно сделать, длина строки изменяется, поскольку я читаю ее из текстового файла. – user2875021