public static String StrReplace(String rStr, String rFix, String rRep) {
        int l = 0;        String gRtnStr = rStr;        do
        {
             l = rStr.indexOf(rFix,l);             if(l == -1) break;             gRtnStr = rStr.substring(0,l) + rRep + rStr.substring(l + rFix.length());
             l += rRep.length();
             rStr = gRtnStr;        }while(true);        return gRtnStr.substring(0, gRtnStr.length());
    }

解决方案 »

  1.   

    用一个堆栈和一个StringBuffer对象。
    依次读源字符串(一个个char的度),如果是定义的分隔符(比如空格,标点符号),就将堆栈的东西全部弹出到append到StringBuffer对象;否则就push到堆栈(也可以反过来,判断是字母就push,否则就pop)。
      

  2.   

    首先定义一个包含全部字母的字符串allstr(或者是希望被翻转的字符)public String conver(String str)
      {
        int i=0;
        String tmp=new String();
        for (i=str.length()-1;i>=0;i--)
        {
          tmp=tmp+str.charAt(i);
        }
        return tmp;
      }//主程序
    public void exec(String str)
    {
    String allstr=new String("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
        String result=new String();
        String tmp=new String();
        int i=0,position=0;
        for (i=0;i<str.length();i++)
        {
          position=allstr.indexOf(str.toLowerCase().charAt(i),0);
          if (position<0)
          {
            result=result+conver(tmp)+str.charAt(i);
            tmp="";
          }
          else{
            if (i==str.length()-1)
              result=result+conver(tmp+str.charAt(i));
            else
              tmp=tmp+str.charAt(i);
          }
        }
        System.out.println(result);//输出结果
    }