A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

一个字符串“abcde”,实现反转“edcba”,有多少种方法?盖楼的请不要重复。

12 个回复

倒序浏览
  1.         public static void main(String[] args) {
  2.                 String s = "abcdef";
  3.                 String r = "";
  4.                 for(int i=0;i<s.length();i++){
  5.                         r = s.charAt(i)+r;
  6.                 }
  7.                 System.out.println(r);
  8.         }
复制代码
回复 使用道具 举报
  1.                 String s = "abcdef";
  2.                 StringBuilder sb = new StringBuilder(s);
  3.                 sb.reverse();
  4.                 System.out.println(sb.toString());
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 赵兵锋 于 2012-6-11 20:41 编辑
  1.         public static void main(String[] args) {
  2.                 String s = "abcdef";
  3.                 char[] arr = s.toCharArray();;
  4.                 char t;
  5.                 for(int i=0;i<arr.length/2;i++){
  6.                         t = arr[i];
  7.                         arr[i] = arr[arr.length-1-i];
  8.                         arr[arr.length-1-i] = t;
  9.                 }
  10.                 s = new String(arr);
  11.                 System.out.println(s);
  12.         }
复制代码
回复 使用道具 举报
  1.         public static void main(String[] args) {
  2.                 String s = "abcdef";
  3.                 StringBuilder sb = new StringBuilder();
  4.                 f(s,sb);
  5.                 System.out.println(sb.toString());
  6.         }
  7.         public static void f(String s,StringBuilder sb){
  8.                 if(s.length()>0){
  9.                         sb.append(s.substring(s.length()-1));
  10.                         f(s.substring(0, s.length()-1),sb);
  11.                 }
  12.         }
复制代码
回复 使用道具 举报
StringBuffer sb = new StringBuffer("abcdefg");
sb.reverse();
System.out.println(sb.tostring);
{:soso_e113:}
回复 使用道具 举报
一下代码可以将任意输入的字符串反转
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/*将输入进去的字符串倒序输出*/
public class stringfanz {
        public static void main(String[] args) {
                String readString;
                InputStreamReader isr = new InputStreamReader(System.in);
                BufferedReader br = new BufferedReader(isr);
                try {
                        System.out.print("请输入一行字母或字母数字组合:");
                        readString = br.readLine(); // 将输入作为字符串保存
                        while (!readString.equals("")) {

                                System.out.println("你输入的是:" + readString);

                                char[] ch = readString.toCharArray();// 将输入的字符串转换为字符数组
                                System.out.print("输入倒序后:");
                                for (int i = ch.length - 1; i >= 0; i--) {
                                        System.out.print(ch);
                                }

                                System.out.print("\n请输入一行字母或字母数字组合:");
                                Uperchar = ""; // 清空变量
                                Lowerchar = "";
                                readString = br.readLine();
                        }
                        br.close();
                } catch (IOException e) {
                        e.printStackTrace();
                }

        }
}
回复 使用道具 举报
向地板学习{:soso_e129:}
回复 使用道具 举报
public class StringReverse{
public static void main(String[] args)
{
String s="adcde";
System.out.println("原始字符串:"+s);
System.out.println("反转字符串:");
StringBuffer buff = new SringBuffer(s);
// Java.lang.StringBuffer类的reverse()方法可以将字符串反转
System.out.println(buff.reverse().toString());
}
}
回复 使用道具 举报
原来还有赵兵锋这种方法,方法真是太技巧了,人多思维多啊。
回复 使用道具 举报
赵兵锋 发表于 2012-6-11 20:21

我靠,这个方法有技巧。想不到啊。
回复 使用道具 举报
  1. package com.itheima;

  2. /**
  3. *
  4. * 第7题: 将字符串中进行反转。abcde --> edcba
  5. *
  6. */
  7. public class Test7 {

  8.         public static void main(String[] args) {
  9.                 //定义Reverse对象,并指定要反序的字符串
  10.                 Reverse reverse = new Reverse("abcde");
  11.                 //输出反序后的字符串
  12.                 System.out.print(reverse.doReverse());

  13.         }

  14. }
  15. /**
  16. *
  17. * 自定义一个字符反序的类Reverse
  18. *
  19. */
  20. class Reverse {
  21.         // 定义要输入的字符串
  22.         private String input;

  23.         // 带参数的构造方法
  24.         public Reverse(String input) {
  25.                 this.input = input;
  26.         }

  27.         // 提供一个字符反序的方法
  28.         public String doReverse() {
  29.                 //定义StringBuffer,用来连接反序后的字符
  30.                 StringBuffer str = new StringBuffer();
  31.                 //定义指定大小的栈
  32.                 MyStack stack = new MyStack(input.length());
  33.                 //将字符串转换成字符数组存储在字符数组chars中
  34.                 char[] chars = input.toCharArray();
  35.                 //遍历字符数组,并压栈
  36.                 for (int i = 0; i < chars.length; i++) {
  37.                         stack.push(chars[i]);

  38.                 }
  39.                 //字符依次弹栈
  40.                 while (!stack.isEmpty()) {
  41.                         str.append(stack.pop());
  42.                 }
  43.         //返回反序后的字符串
  44.                 return str.toString();

  45.         }

  46. }

  47. /*
  48. * 自己实现一个简单的栈
  49. */
  50. class MyStack {
  51.         // 定义栈的容量
  52.         private int maxSize;
  53.         // 定义字符数组大小
  54.         private char[] charArray;
  55.         // 定义栈顶指针
  56.         private int top;

  57.         // 构造方法,指定栈的大小
  58.         public MyStack(int size) {
  59.                 maxSize = size;
  60.                 charArray = new char[maxSize];
  61.                 top = -1;
  62.         }

  63.         // 压栈
  64.         public void push(char c) {

  65.                 charArray[++top] = c;
  66.         }

  67.         // 弹栈
  68.         public char pop() {
  69.                 return charArray[top--];

  70.         }

  71.         // 访问栈顶元素
  72.         public char getTop() {
  73.                 return charArray[top];
  74.         }

  75.         // 栈是否为空
  76.         public boolean isEmpty() {
  77.                 return top == -1;
  78.         }

  79.         // 栈是否满了
  80.         public boolean isFull() {
  81.                 return top == maxSize - 1;

  82.         }
  83. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马