разделить строку и сохранить в arraylist

#java #arraylist #split

#java #arraylist #разделить

Вопрос:

Я хочу разделить указанную ниже строку и сохранить ее в двух отдельных массивах, таких как state и city

  public class RoundValue {

    public static void main(String args[]) {
        String firstset = null;

        String city = "Tamilnadu;chennai-madurai-salem::Kerala;cochin-tiruvandrum-calicut";

        ArrayList<String> mState = new ArrayList<String>();
        ArrayList<String> mCity = new ArrayList<String>();

        HashMap<String, List<String>> hashsplit = new HashMap<String, List<String>>();

        List<String> splitword1 = Arrays.asList(city.split("::"));

        if (splitword1.size() > 0) {
            for (int i = 0; i < splitword1.size(); i  ) {
                firstset = splitword1.get(i);


                List<String> firststate = Arrays.asList(firstset.split("-"));
                if (firststate.size() > 0) {
                    for (int j = 0; j < firststate.size(); j  ) {
                        String firstcity = firststate.get(j);

                        List<String> secondcity = Arrays.asList(firstcity.split(";"));
                        if (secondcity.size() > 0) {
                            for (int k = 0; k < secondcity.size(); k  ) {
                                String septcity = secondcity.get(k);
                                System.out.println("septcity Splitted:"   septcity);

                            }
                        }
                    }
                }
            }
        }

    }
}
  

Я разделил каждый символ, но мне нужно сохранить состояние в отдельном списке и город в отдельном списке

Комментарии:

1. Какие значения должны оказаться в двух списках?

2. в одном состоянии списка (Тамилнаду, Керала) и в другом списке городов (Ченнаи, Мадурай, ….)

Ответ №1:

Шаг 1: разделите заданный строковый ввод, как Arrays.asList(city.split("::")); вы уже это сделали.

Шаг 2: разделите каждый список на массив, например Tamilnadu;chennai-madurai-salem , используя String both[]=string.split(";"); здесь, вы получите отдельные штаты и города. Нравится both[0] is State . оба [1] являются chennai-madurai-salem

Шаг 3: разделите строку cities в обоих [1] usig both[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 " ");
        }


    }
  

Ответ №2:

Вот пример

 import java.util.ArrayList;
import java.util.Arrays;

/**
 * Created by Prasad on 6/17/2014.
 */
public class stack {
    public static void main(String[] args) {
        String s="Tamilnadu;chennai-madurai-salem::Kerala;cochin-tiruvandrum-calicut";
        ArrayList<String> x1=new ArrayList<String>();
        ArrayList<String> x2=new ArrayList<String>();
        String string[]=s.split("::");
        for(String y:string){
            try{
                String[] temp=y.split(";");
                x1.add(temp[0]);
                x2.add(temp[1]);
            }catch(Exception e){}
        }
        System.out.println(x1.toString());
        System.out.println(x2.toString());
    }

}