public class ReverseString {
public static void reverse(String sSource) {
try{
byte[] bSource = sSource.getBytes("UTF-8");
String sUTFSource = new String(bSource,"UTF-8");
bSource = null;
StringBuilder sbRet = new StringBuilder();
int nSize = sUTFSource.length() - 1;
for (int i=nSize; i>=0; i--) {
sbRet.append(sUTFSource.charAt(i));
}
System.out.println("source :" + sUTFSource);
System.out.println("result :" + sbRet.toString());
sbRet = null;
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) {
if (args != null && args.length > 0) {
String sSource = args[0];
ReverseString.reverse(sSource);
}
}
}
public static String reverse2(String sSource) throws Throwable {
int nSize = sSource.length();
if (nSize <= 1) {
return sSource;
}
int nMidPoint = nSize >> 1;
String left = sSource.substring(0, nMidPoint);
String right = sSource.substring(nMidPoint, nSize);
return reverse2(right) + reverse2(left);
}