为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

萧十郎 2021-04-07 16:15:37
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[] resString [] res包含两个被拆分的字符串-我试图以相同的方式拆分res以使字符串被||拆分 管道符号,但我越来越像字符一样如何获得像以前一样
查看完整描述

3 回答

?
森林海

TA贡献2011条经验 获得超2个赞

不要两次使用拆分方法。您可以使用一种拆分方法来完成任务。像这样,


 void displayResult() {


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


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


   for(String city : res){


     System.out.println(city);


   }


 }

您的输出将是:-


泰米尔纳德邦


金奈


卡拉纳塔克


班加罗尔


查看完整回答
反对 回复 2021-04-21
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

我认为您必须尝试学习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

}


查看完整回答
反对 回复 2021-04-21
?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

你不应该打电话res.toString。它将返回如下内容:


[Ljava.lang.String;@2c7b84de

相反,您可以使用regex拆分res中的元素\|\|:


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

System.out.println(result.length); // 2


查看完整回答
反对 回复 2021-04-21
  • 3 回答
  • 0 关注
  • 128 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信