package ceshi;
//abcd1234efgh 怎样转变成 efgh5678dcba 代码最短 
public class change {
public static void main(String[] args) {
      String s="abcd1234efgh";
      String str1=s.substring(0,4);
      StringBuffer str11=new StringBuffer(str1);
      str1=str11.reverse().toString();
      String str2=s.substring(8);
      char [] a=s.toCharArray();
      String j="";
      for (int i = 4; i < 8; i++) {
    int m=Integer.parseInt(String.valueOf(a[i]))+4;
    j+=String.valueOf(m);
      }
         System.out.println(str2+j+str1);   
}}

解决方案 »

  1.   

    看了一些牛人写的后,我觉得你这样子改改要好点:1、你既然都已经把它转化为字符数组了,那直接对其元素进行修改后,再new String(a);这样不用每次还要字符串的拼接。2、Integer.parseInt(String.valueOf(a[i]))+4;  字符本来就可以直接用来做算术运算。没有必要再换成字符串,再换成整型吧.3、你是把整个字符串进行了分段处理,其实每个字符的转换规则可以合成一个表达示。
      

  2.   

    感觉这道题很无聊
    直接System.out.print("efgh5678dcba");算了
      

  3.   

    1234->5678部分
    char c = a[i]-'0'+4
      

  4.   

    LZ做法就很简洁了,要么直接按4L的无聊输出,要么缺少的是寂寞。。