分享
三行代码  ›  专栏  ›  技术社区  ›  Sunggaki Channel

如何为每个“,”符号拆分一个句子?

  •  1
  • Sunggaki Channel  · 技术社区  · 6 月前

    我知道用split函数拆分句子的一般方法,但问题是你需要声明你需要多少变量,

    String[] GameGenreCodeSeparated = GameGenreCodeRAW.split(",");
    listGameGenre.add(GameGenreCodeSeparated[0]);
    listGameGenre.add(GameGenreCodeSeparated[1]);
    listGameGenre.add(GameGenreCodeSeparated[2]);
    

    如何添加一个list every,’符号,使一个list可以动态地从该语句中有5个对象,任何解决方案?

    4 回复  |  直到 6 月前
        1
  •  4
  •   Patrick Helms    6 月前

    您需要遍历数组。下面这样的东西应该有用。

    String[] GameGenreCodeSeparated = GameGenreCodeRAW.split(",");
    for (String GameGenre: GameGenreCodeSeparated ) { 
         listGameGenre.add(GameGenre);
    } 
    
        2
  •  4
  •   Quoc Truong    6 月前

    Arrays.asList(GameGenreCodeRAW.split(",")) 以避免手动添加。

        3
  •  0
  •   Nouman Ch Adeola Ogunleye    6 月前

    @Sungakki你应该检查哪种方法更好,在这种情况下, Arrays.asList(GameGenreCodeRAW.split(",")) 原因是Arrays.asList()是处理数组的标准实用方法。在这里编写custom for()循环毫无意义。

    如果你很难理解它在做什么,下面是进一步的细节。

    listgamegroune=Arrays.asList(GameGenreCodeRAW.split(“,”));

    Arrays.asList()

    这是有关 数组.asList() official docs .

        4
  •  0
  •   Cloud Walker    6 月前

    最好创建一个新的数组或arraylist,因为在尝试拆分字符串但不在其他地方存储任何数据时会遇到麻烦。 我想应该是这样的:

    import java.util.ArrayList;
        public class test 
        {
            public static void split(String raw){
                ArrayList <String>  GameGenreCodeSeparated= new ArrayList<String>();
                int splits=0;//how man times have the sentence been splited
                int previousSplited=0;//index of the prevoius comma
                for(int i=0;i<raw.length();i++){
                    if(raw.charAt(i)==','){//when comma occurs
                        if(previousSplited==0){//if this is the first comma
                            GameGenreCodeSeparated.add(raw.substring(0,i));//add the splited string to the list
                            previousSplited=i;//record the place where splited
                        }
                        else{
                            GameGenreCodeSeparated.add(raw.substring(previousSplited+1,i));//add the splited string to the list
                            previousSplited=i;//record the place where splited
                        }
                    }
                    else if (i==raw.length()-1){//if this is the end of the string
                        GameGenreCodeSeparated.add(raw.substring(previousSplited+1,i));//add the splited string to the list
                        previousSplited=i;//record the place where splited
                    }
    
                }
                System.out.println(GameGenreCodeSeparated);//print out results;
            }
        }
    

    希望这有帮助!

        5
  •  0
  •   Nabin K Shrestha    6 月前

    科特林 您可以简单地执行以下操作:

    val strs = GameGenreCodeRAW.split(",".toRegex()).toTypedArray()
    
        6
  •  -1
  •   Apps Maven    6 月前
        String text = "In addition, Androids could multitask, whereas iPhones could not at that time. By 2011, Android outsold every other smartphone";
    
        String[] textSeparated = text.split(",");
    
    String first=textSeparated[0];
    String second=textSeparated[1];
    String Third=textSeparated[2];
    String Fourth=textSeparated[3];