问题描述
要对字符串进行操作要求是这样的:Stringformual="a+b-c-d+e+f-g";得到的结果是这样加号存放一个数组:减号存放一个数组中:跪求高人
解决方案
解决方案二:
在线等待跪求高人
解决方案三:
String[]split(Stringregex);//以regex为标志分割成数组包括:String[]split(Stringregex,intlimit);//limit为数组长度,多出部分并入最后一个元素如:Stringstr="a,b,c,d,e,f,g";Stringtemp[]=str.split(",");//返回数组a,b,c,d,e,f,g
解决方案四:
这个API知道,关键是怎么把一个字符串中的减号和减号进行分割
解决方案五:
先用加号分割,判断是不是一个字符,如果是就放进一个数组里边,如果不是一个字符,就用减号分割,然后放进另一个数组!
解决方案六:
你把要的结果写出来,啥加号存放一个数组,减号存放一个数组,说的不清晰
解决方案七:
结果是:a,b,e,fc,d,g
解决方案八:
booleanjianhao=false;intlength=str.length();StringBuffera=newStringBuffer();//+StringBufferb=newStringBuffer();//-for(inti=0;i<length;i++){charc=str.charAt(i);if(c=='+'){jianhao=false;}elseif(c=='-'){jianhao=true;}elseif(jianhao){b.append(c);}else{a.append(c);}}
解决方案九:
用StringBuffer,一个个的截取判断,
解决方案十:
搞不懂楼主的意思!
解决方案十一:
楼主先还在不在
解决方案十二:
不懂??????
解决方案十三:
就是一个字符串中Stringstr="12+13+14-11-21";中最后得到的结果分别是:加号的值:12,13,14减号的值:11,21就是这个问题
解决方案十四:
用split截取
解决方案十五:
跪求高手把结果输出来我看看
解决方案:
用String[]split但是不太清楚你要表达什么?
解决方案:
重新表述下一个字符串Stringstr="1002+1003-1004+1005-1006+1007"得到结果是:加号的值结果为:1002,1003,1005,1007减号的值结果为:1004,1006弄了一天了,小弟跪求
解决方案:
跪求高人小弟万分感激
解决方案:
楼主的意思是不是字母前面的符号是+的字母放在一个数组,字母前面的符号是-的放在另一个数组,在字符串前面第一个没符号的,默认是+?两个两个的来取就行了吧Strings="a+b-c-d+e+f-g"char[]chs=s.charArray();List<char>lista=newArrayList<char>();List<char>listb=newArrayList<char>();lista.add(chs[0]);for(inti=1;i<chs.length;i+=2){if(chs[i]=='+'){lista.add(chs[i+1]);}else{listb.add(chs[i+1]);}}是这个意思不
解决方案:
看明白了,是这个意思啊,可以用一个正则表达式来分隔啊,就是+或者-作为分隔符,用正则表达式split()是可以传入一个正则表达式的不知道楼主这个题目有没有+-连续出现的情况
解决方案:
/***@authortroy(J2EE)*@version1.0*/publicclassTest{publicstaticvoidmain(String[]args)throwsException{Stringformual="a+b-c-d+e+f-g";StringaddStr="";//加号的字符StringsubStr="";//减号的字符for(inti=0;i<formual.length();i++){if(formual.charAt(i)!='+'&&formual.charAt(i)!='-'){intindex=i-1<0?0:i-1;if(index==0||formual.charAt(index)=='+'){addStr+=formual.charAt(i)+"";}if(formual.charAt(index)=='-'){subStr+=formual.charAt(i)+"";}}}System.out.println("加号的字符:"+addStr);System.out.println("减号的字符:"+subStr);}}
解决方案:
上面的代码你直接在运行吧,就是你想要的结果这么简单的玩意哎--
解决方案:
#刚刚写出来。。。我晕哎瞎弄了一天
解决方案:
随便写的,有什么问题发消息给我。publicstaticvoidmain(String[]args){Stringstr="1002+1003-1004+1005-1006+1007";str=str.indexOf("+")>str.indexOf("-")?"-"+str:"+"+str;List<String>tempStrList=newArrayList<String>();List<String>tempStrList1=newArrayList<String>();List<String>tempStrList2=newArrayList<String>();Stringtemp="";for(inti=0;i<str.length();i++){if(str.charAt(i)=='+'||str.charAt(i)=='-'){if(temp!=""){tempStrList.add(temp);temp="";tempStrList.add(String.valueOf(str.charAt(i)));}else{tempStrList.add(String.valueOf(str.charAt(i)));}}else{temp+=str.charAt(i);}if(i==str.length()-1){tempStrList.add(temp);}}for(inti=0;i<tempStrList.size();i++){if(i>0){if(tempStrList.get(i-1).equals("+")){tempStrList1.add(tempStrList.get(i));}if(tempStrList.get(i-1).equals("-")){tempStrList2.add(tempStrList.get(i));}}}System.out.println("+为前缀");for(Stringu:tempStrList1){System.out.println(u);}System.out.println("-为前缀");for(Stringu:tempStrList2){System.out.println(u);}}
解决方案:
20楼的只是单字符。
解决方案:
结果:[1002,1003,1005][1004,1006]代码如下:importjava.util.ArrayList;importjava.util.List;publicclassMain{/***@paramargs*/publicstaticvoidmain(String[]args){Strings="1002+1003-1004+1005-1006+1007";String[]str=s.split("[+,-]");char[]chs=s.toCharArray();List<Character>list=newArrayList<Character>();for(inti=0;i<chs.length;i++){if(chs[i]=='+'||chs[i]=='-'){list.add(chs[i]);}}List<String>plus=newArrayList<String>();List<String>minus=newArrayList<String>();plus.add(str[0]);for(inti=1;i<list.size();i++){if(list.get(i-1)=='+'){plus.add(str[i]);}else{minus.add(str[i]);}}System.out.println(plus);System.out.println(minus);}}
解决方案:
楼下的人好牛逼写的好有功底
解决方案:
弄错了一点地方结果:[1002,1003,1005,1007][1004,1006]代码:packagecat.Test;importjava.util.ArrayList;importjava.util.List;publicclassMain{/***@paramargs*/publicstaticvoidmain(String[]args){Strings="1002+1003-1004+1005-1006+1007";String[]str=s.split("[+,-]");char[]chs=s.toCharArray();List<Character>list=newArrayList<Character>();for(inti=0;i<chs.length;i++){if(chs[i]=='+'||chs[i]=='-'){list.add(chs[i]);}}List<String>plus=newArrayList<String>();List<String>minus=newArrayList<String>();plus.add(str[0]);for(inti=1;i<str.length;i++){if(list.get(i-1)=='+'){plus.add(str[i]);}else{minus.add(str[i]);}}System.out.println(plus);System.out.println(minus);}}
解决方案:
楼主,给点分吧。。。。
解决方案:
兄弟,不是我不想给我穷得一分都没了,谢谢大家跪谢
解决方案:
正则表达式
解决方案:
publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubArrayList<String>adds=newArrayList<String>();ArrayList<String>subs=newArrayList<String>();Strings="123+342-342+234-5464-976+3453-765";Stringa="";booleanflag=true;for(inti=0;i<s.length();i++){Characterc=s.charAt(i);try{a+=Integer.toString(Integer.parseInt(String.valueOf(c)));if(flag&&i==s.length()-1){adds.add(a);}elseif(!flag&&i==s.length()-1){subs.add(a);}}catch(Exceptione){//TODO:handleexceptionif(flag){adds.add(a);}else{subs.add(a);}a="";if(c.equals('+')){flag=true;}if(c.equals('-')){flag=false;}}}for(inti=0;i<adds.size();i++){System.out.println(adds.get(i));}System.out.println("---------------------------------------");for(inti=0;i<subs.size();i++){System.out.println(subs.get(i));}}
解决方案:
这个好!引用6楼zhangsan0906的回复:
结果是:a,b,e,fc,d,g