如何使用逗号分隔逗号分隔的字符串,该字符串包含括号内的子字符串

时间:2015-05-17 19:58:02

标签: java

这是我的例子:

输入:

String str="hello,there,(what,is,new),today,(with,you)"

期望的输出:

hello
there
(what,is,new)
today
(with,you)

4 个答案:

答案 0 :(得分:1)

我认为最简单的方法是在for循环中使用字符串char,并用逗号替换逗号,除非你在括号内(你需要保留它们的数量)

答案 1 :(得分:0)

现在可行了

String str="hello,there,(what,is,new),today,(with,you)";
int inside = 0;
int index = 0;
for (int i = 0; i < str.length(); i++){
    if (str.charAt(i) == ')'){
        inside--;
    }else if (str.charAt(i) == '('){
        inside++;
    }else if (str.charAt(i) == ',' && inside == 0){
        System.out.println(str.substring(index, i));
    index = i+1;
    }
}if (index != str.length()){
    System.out.println(str.substring(index, str.length()));
}

答案 2 :(得分:0)

ArrayList<String> myList = new ArrayList<String>();
int index1=-1;
int index2=0;
for(int i=0;i< str.length;i++)
{
if(str.charAt(i) == ',')
   {
index2=i;
myList.add(str.substring(index1+1 ,index2-1));
index1=index2;
  }
}

答案 3 :(得分:0)

String str="hello,there,(what,is,new),today,(with,you)";
ArrayList<String> myList = new ArrayList<String>();
int index1=-1;
int index2=0;
for(int i=0;i< str.length();i++)
{
if(str.charAt(i) != '(' ){
   if(str.charAt(i) == ',' )
     {
  index2=i;
  myList.add(str.substring(index1+1 ,index2));
  index1=index2;
  }
}
else
    while(str.charAt(i)!=')')
        i++;
}

for(int i=0;i<myList.size();i++) System.out.println(myList.get(i));