问题描述
写一个程序把字符串按这种方式处理:“abcdef”转为“efcdab”。要求不能用字符串函数,要用伪码写
解决方案
解决方案二:
如果说不能用字符串函数,那那个String就呆在那里动都动不了还怎么转啊,又不像c那种有指针以前也碰到这种题,觉得很无奈期待高手解释~
解决方案三:
这题是有点无聊!随便写写,应该还有更好的思路!Stringt;String[]s<-用空格split这个字符串fori=0->s.length/2t<-s[i];s[i]<-s[length-i];s[length-i]<-t;
解决方案四:
引用2楼zlz3907的回复:
这题是有点无聊!随便写写,应该还有更好的思路!Stringt;String[]s<-用空格split这个字符串fori=0->s.length/2t<-s[i];s[i]<-s[length-i];s[length-i]<-t;
splitlength都是String的函数吧,,
解决方案五:
不用字符串函数?那把string包装成stringbuffer行不?
解决方案六:
这个问题很值得讨论。期待
解决方案七:
关注,等高手
解决方案八:
嗯思考思考
解决方案九:
不用字符串是不是要用数组?
解决方案十:
我用栈,但是是更复杂的类,似乎与题意不符
解决方案十一:
引用4楼rypgood的回复:
不用字符串函数?那把string包装成stringbuffer行不?
这个呢?有点无奈啊。要么用数组去倒序。
解决方案十二:
比较无聊俄,为什么不能用字符函数?没有指针的语言比较恶心。
解决方案十三:
谁出的题目?舍近求远。。。
解决方案十四:
勉强实现了:importjava.util.regex.*;publicclassMyRegex{publicstaticvoidmain(String[]args){Strings="abcdef";Stringstr="";String[]arr=newString[10];inti=0,f=0;Matcherm=Pattern.compile("\w{2}").matcher(s);//先用正则过滤,如果正则表达式也算字符串函数的话,我也没话说了while(m.find()){arr[i]=m.group();//把过滤出来的放进数组里面i++;}//用for循环倒着打印出来for(intj=i-1;j>=0;j--){if(f!=0){str+=""+arr[j];}else{str=arr[j];f++;}}System.out.println(str);}}
解决方案十五:
可以把string强制转换成int,然后在根据字符串的长度来做计算,最后把INT转换成string,输出.不知道这样可不可以.
解决方案:
题目说要用伪码。。。
解决方案:
我怎么抽象,都不能找出这个情况的规则。唉~搞不定。期待大家。
解决方案:
学习,不错,正则表达式也算字符串函数
解决方案:
咋弄?
解决方案:
13楼的方法貌似可以~~~
解决方案:
不知道楼主想干什么,有好方法为啥不用啊split方法多简单啊
解决方案:
不用任何方法的话,这个String对象根本碰都碰不了吧,怎么改??
解决方案:
将字符串写入文件再从文件里读出来JAVA里可以Scanners=newScanner("abcdef");
解决方案:
importjava.util.Arrays;publicclassReversePrintWord{staticvoidgo(Stringsrc){char[]buf=src.toCharArray();for(inti=buf.length-1;i>=0;i--){if(i==0){intj=buf[0]==''?i+1:i;intflag=j;for(;j<=buf.length-1&&buf[j]!='';j++)System.out.print(buf[j]);if(flag!=j)System.out.print("");}elseif(buf[i]==''){intj=i+1;for(;j<=buf.length-1&&buf[j]!='';j++)System.out.print(buf[j]);if(j!=i+1)System.out.print("");}}}publicstaticvoidmain(String[]args){Strings="abcdefhijkm";go(s);}}
解决方案:
我用栈写的:importjava.util.Stack;/***将一句话倒过来。"Iamastudent"变成"studentaamI"*@authorOwner**/publicclassstringsub{publicstaticStringa(Stringstr){Stacks=newStack();//读取栈Stacks2=newStack();//输出栈Stacktmp=newStack();//临时栈StringBuffersb=newStringBuffer("");inti=0;do{System.out.println(i);charc=str.charAt(i);if(c!=''){s.add(c);}if(c==''||i==str.length()-1){//单词结束或字符串结束while(!s.empty()){tmp.add(s.pop());}while(!tmp.empty()){//把读取到的单词再倒过来恢复正常顺序sb.append(tmp.pop());}s2.add(sb.toString());//存放单词if(c==''){//如果是最后一个字符就不加空格了s2.add(c);}sb=newStringBuffer("");}i++;}while(i<str.length());while(!s2.empty()){sb.append(s2.pop());}returnsb.toString();}publicstaticvoidmain(String[]args){Stringstr="Iamastudent";System.out.println(a(str));}}