写一个程序把字符串按这种方式处理:“ab cd ef”转为“ef cd ab”。要求不能用字符串函数,要用伪码写

解决方案 »

  1.   


    如果说不能用字符串函数,那那个String就呆在那里动都动不了
    还怎么转啊,又不像c那种有指针
    以前也碰到这种题,觉得很无奈
    期待高手解释~
      

  2.   

    这题是有点无聊!
    随便写写,应该还有更好的思路!
    String t;
    String[] s <- 用空格split这个字符串
    for i = 0 -> s.length / 2
        t <- s[i]; s[i] <- s[length-i]; s[length-i] <- t;
      

  3.   

    split
    length 都是String的函数吧,,
      

  4.   

    不用字符串函数?
    那把string包装成stringbuffer行不?
      

  5.   

    勉强实现了:
    import java.util.regex.*;
    public class MyRegex {
    public static void main(String[] args) { String s="ab cd ef";
    String str="";
    String[] arr=new String[10];
    int i=0,f=0;
    Matcher m=Pattern.compile("\\w{2}").matcher(s);
    //先用正则过滤,如果正则表达式也算字符串函数的话,我也没话说了
    while (m.find()) {
    arr[i]=m.group();//把过滤出来的放进数组里面
    i++;
    }
    //用for循环倒着打印出来
    for (int j = i-1; j >=0; j--) {
    if(f!=0)
    {
    str+=" "+arr[j];
    }
    else
    {
    str=arr[j];
    f++;
    }
    }
    System.out.println(str);
    }
    }
      

  6.   

    可以把string强制转换成int,然后在根据字符串的长度来做计算,最后把INT转换成string,输出.不知道这样可不可以.
      

  7.   

    不知道楼主想干什么,有好方法为啥不用啊 
    split方法多简单啊  
      

  8.   

    不用任何方法的话,这个String对象根本碰都碰不了吧,怎么改??
      

  9.   

    将字符串写入文件
    再从文件里读出来JAVA里可以
    Scanner s=new Scanner("ab cd ef");
      

  10.   

    import java.util.Arrays;
    public class ReversePrintWord{
    static void go(String src){
    char[] buf=src.toCharArray();
    for(int i=buf.length-1;i>=0;i--)
    {

    if(i==0){
    int j=buf[0]==' '? i+1:i;
    int flag=j;
    for(;j<=buf.length-1&&buf[j]!=' ';j++)
    System.out.print(buf[j]);
    if(flag!=j) System.out.print(" ");

    }
    else if(buf[i]==' '){
    int j=i+1;
    for(;j<=buf.length-1&&buf[j]!=' ';j++)
    System.out.print(buf[j]);
    if(j!=i+1) System.out.print(" ");
    }
    }

    }
    public static void main(String[] args){
    String s="  ab    cd    ef  hij km    ";
    go(s);
    }
    }
      

  11.   

    我用栈写的:import java.util.Stack;/**
     * 将一句话倒过来。"I am a student"变成"student a am I"
     * @author Owner
     *
     */
    public class stringsub {
    public static String a(String str) {
    Stack s = new Stack(); //读取栈
    Stack s2 = new Stack(); //输出栈
    Stack tmp = new Stack(); //临时栈
    StringBuffer sb = new StringBuffer("");
    int i = 0;
    do {
    System.out.println(i);
    char c = 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 = new StringBuffer("");
    }
    i++;
    } while (i < str.length());
    while (!s2.empty()) {
    sb.append(s2.pop());
    }
    return sb.toString();
    }

    public static void main(String[] args) {
    String str = "I am a student";
    System.out.println(a(str));
    }
    }