Step 1: Separate the entered string input as Arrays.asList(city.split("::"));you did.
Step 2: Separate each list in an array, for example Tamilnadu;chennai-madurai-salem, using String both[]=string.split(";");here you will get a divided state and cities. for example both[0] is State. both [1] are equalchennai-madurai-salem
Step 3: Divide the line of cities as in [1] usigboth[1].split("-")
, -, . .
public static void main(String[] args) {
String city = "Tamilnadu;chennai-madurai-salem::Kerala;cochin-tiruvandrum-calicut";
ArrayList<String> mState = new ArrayList<String>();
ArrayList<String> mCity = new ArrayList<String>();
List<String> bothList= Arrays.asList(city.split("::"));
for (String string : bothList) {
String both[]=string.split(";");
String state=both[0];
List<String> tempCityList=Arrays.asList(both[1].split("-"));
mState.add(state);
mCity.addAll(tempCityList);
}
System.out.println("Your states");
for (String string : mState) {
System.out.print(string+" ");
}
System.out.println("\nYour cities");
for (String string : mCity) {
System.out.print(string+" ");
}
}