2015-01-08 2 views
0

мне нужно разбить строку в Java и отобразить его в город, страну и континент
Разделить строку в Java и карте оценить с другой строкой

String s = "mumbai| india - Asia"; 
String b ="{city}|{country}-{Continent}" 

где: | и - специальные символы

выход:

city - mumbai 
country - india 
continent - Asia 
+3

Что вы пробовали ... Опубликовать свой код – newuser

+0

Есть ли пробел между '' 'и' india', или это опечатка? –

+0

Да может быть место. Моя логика - это
1) using regex get a separator
2) извлечь текст из строки s 3), используя regex get mapping из b и произвести вывод – amit

ответ

2

почему бы вам не использовать именованные захватывая группы?

(?<city>[^|]*)\s*\|\s*(?<country>[^-]*)-\s*(?<continent>[\w\s]*) 

демо здесь:

https://regex101.com/r/kZ4tQ7/1

просмотреть информацию о матче на правой стороне

+0

Nice regex-page! Он искал что-то похожее на века. – jAC

0

вы можете попробовать

String s = "mumbai| india - Asia"; 
String[] splitString = s.split("|"); 
String city = spiltString[0]; 
String secondSplit[] = splitString[1].split(" - "); 
String country = secondSplit[0]; 
String continent = secondSplit[1]; 
0
Try this. 

String s = "mumbai| india - Asia"; 
String b ="{city}|{country}-{Continent}"; 

String city = s.split("\\|")[0]; 
String country = s.split("\\|")[1].split("-")[0]; 
String cont =s.split("\\|")[1].split("-")[1]; 


String cityT = b.split("\\|")[0]; 
String countryT = b.split("\\|")[1].split("-")[0]; 
String contT =b.split("\\|")[1].split("-")[1]; 



System.out.println(cityT.replace("{", "").replace("}", "") +" - " + city); 
System.out.println(countryT.replace("{", "").replace("}", "") +" - " + country); 
System.out.println(contT.replace("{", "").replace("}", "") +" - " + cont); 
Смежные вопросы