如何使用定界符从字符串数组[]中按字符串(逐字而不是字符)拆分字符串?

void displayResult() {

    String str = "tamilnadu||chennai-karanataka||bengaluru";

    String[] res = str.split("\\-");

    System.out.println(res.length);//res length is 2 


    //res contains two strings splited by -

    String[] result = res.toString().split("\\||");

    //again splitting by || but getting as characters, i need to get word by      word

    // how to achieve this

    System.out.println(result.length);//result length is 28

}

// i was supposed to get tamilnadu and chennai from first string[] res

String [] res包含两个被拆分的字符串-我试图以相同的方式拆分res以使字符串被||拆分 管道符号,但我越来越像字符一样如何获得像以前一样




萧十郎
浏览 129回答 3
3回答

森林海

不要两次使用拆分方法。您可以使用一种拆分方法来完成任务。像这样, void displayResult() {   String str = "tamilnadu||chennai-karanataka||bengaluru";   String[] res = str.split("\\|\\||-");   for(String city : res){     System.out.println(city);   } }您的输出将是:-泰米尔纳德邦金奈卡拉纳塔克班加罗尔

守着星空守着你

我认为您必须尝试学习Regex。您可以使用|运算符来指定OR条件。因此,如果您使用以下命令,则应该获得所需的数组:String [] res = str.split(“ \-| \ | \ |”);即您的方法将是:void displayResult(){    String str = "tamilnadu||chennai-karanataka||bengaluru";    String[] res =  str.split("\\-|\\|\\|");     System.out.println(Arrays.asList(res)); // don't forget to import Arrays}

慕尼黑8549860

你不应该打电话res.toString。它将返回如下内容:[Ljava.lang.String;@2c7b84de相反,您可以使用regex拆分res中的元素\|\|:String[] result = res[0].split("\\|\\|");System.out.println(result.length); // 2
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java