日期:2014-05-20  浏览次数:20801 次

一个小程序,思前想后想不出,也许是我也不再太熟
有个字符串"How are you! ",编写程序,让它输出" !you are How"(注意有空格)

我主要求思路   看看怎么遇见一个编程题怎么考虑
------最佳解决方案--------------------
引用:
Java code?123String str="how are you!";    StringBuffer buffer=new StringBuffer(str);    System.out.println(buffer.reverse());



你没有看清题
------其他解决方案--------------------
How are you!
1. 先整个字符串逆转
!uoy era woH

2. 在遇到非字符,如空格,把两个非字符之间的部分逆转
!you are How
------其他解决方案--------------------
引用:
Java code?123456789101112131415161718192021222324252627282930313233343536373839package com.zr.csdn; import java.util.regex.Matcher;import java.util.regex.Pattern;  public class StringReve……

不错不错。。。学到点正则
------其他解决方案--------------------
引用:
引用:写个正则提取单词与标点,每个单词或者标点作为一个String,之后添加到Collections(比如List)调用Collections的reverse翻转就行里Java code?1234567891011121314151617181920212223242526272829303132333435363738394041424……


一次笔试出的  我也郁闷
------其他解决方案--------------------
     

代码写少了,方法见得少了,肯定没有思路了!
------其他解决方案--------------------
改进了一下,这个应该没问题了。当然也存在一些地方需要改善,比如存在两个!什么的,这里懒一下,就不做了

package com.briup.test08;
public class TestYield2 {
 
     public static void main(String[] args) {
      String str ="How are you!";
         String[] str1 = str.split(" ");
         String out = "";
         for (int i = str1.length-1; i >=0; i--)
         {
          if(str1[i].contains("!")){
          //System.out.println(str1[i]);
          str1[i]="!"+str1[i];    
          //System.out.println(str1[i]);
          str1[i]=str1[i].substring(0, str1[i].length()-1);
          //System.out.println(str1[i]);
          }
             out+=str1[i]+" ";
         }
         System.out.println(out); 
      }
}


------其他解决方案--------------------
该回复于2012-11-23 08:43:55被管理员删除
------其他解决方案--------------------
(1)split分段
(2)用正则表达式提取单词和标点,并存入数组
(3)倒着输出数组

------其他解决方案--------------------