黑马程序员技术交流社区
标题:
一个字符串“abcde”,实现反转“edcba”,有多少种方法?盖楼的请不要重复。
[打印本页]
作者:
朝哥
时间:
2012-6-11 20:18
标题:
一个字符串“abcde”,实现反转“edcba”,有多少种方法?盖楼的请不要重复。
一个字符串“abcde”,实现反转“edcba”,有多少种方法?盖楼的请不要重复。
作者:
赵兵锋
时间:
2012-6-11 20:21
public static void main(String[] args) {
String s = "abcdef";
String r = "";
for(int i=0;i<s.length();i++){
r = s.charAt(i)+r;
}
System.out.println(r);
}
复制代码
作者:
赵兵锋
时间:
2012-6-11 20:23
String s = "abcdef";
StringBuilder sb = new StringBuilder(s);
sb.reverse();
System.out.println(sb.toString());
复制代码
作者:
赵兵锋
时间:
2012-6-11 20:36
本帖最后由 赵兵锋 于 2012-6-11 20:41 编辑
public static void main(String[] args) {
String s = "abcdef";
char[] arr = s.toCharArray();;
char t;
for(int i=0;i<arr.length/2;i++){
t = arr[i];
arr[i] = arr[arr.length-1-i];
arr[arr.length-1-i] = t;
}
s = new String(arr);
System.out.println(s);
}
复制代码
作者:
赵兵锋
时间:
2012-6-11 20:42
public static void main(String[] args) {
String s = "abcdef";
StringBuilder sb = new StringBuilder();
f(s,sb);
System.out.println(sb.toString());
}
public static void f(String s,StringBuilder sb){
if(s.length()>0){
sb.append(s.substring(s.length()-1));
f(s.substring(0, s.length()-1),sb);
}
}
复制代码
作者:
孙浩迪
时间:
2012-6-11 20:59
StringBuffer sb = new StringBuffer("abcdefg");
sb.reverse();
System.out.println(sb.tostring);
{:soso_e113:}
作者:
武剑峰
时间:
2012-6-11 21:12
一下代码可以将任意输入的字符串反转
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();
}
}
}
作者:
武剑峰
时间:
2012-6-11 21:17
向地板学习{:soso_e129:}
作者:
王明明
时间:
2012-6-11 21:42
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 22:30
原来还有赵兵锋这种方法,方法真是太技巧了,人多思维多啊。
作者:
朝哥
时间:
2012-6-11 22:32
赵兵锋 发表于 2012-6-11 20:21
我靠,这个方法有技巧。想不到啊。
作者:
mengxiang1993
时间:
2015-2-4 12:10
package com.itheima;
/**
*
* 第7题: 将字符串中进行反转。abcde --> edcba
*
*/
public class Test7 {
public static void main(String[] args) {
//定义Reverse对象,并指定要反序的字符串
Reverse reverse = new Reverse("abcde");
//输出反序后的字符串
System.out.print(reverse.doReverse());
}
}
/**
*
* 自定义一个字符反序的类Reverse
*
*/
class Reverse {
// 定义要输入的字符串
private String input;
// 带参数的构造方法
public Reverse(String input) {
this.input = input;
}
// 提供一个字符反序的方法
public String doReverse() {
//定义StringBuffer,用来连接反序后的字符
StringBuffer str = new StringBuffer();
//定义指定大小的栈
MyStack stack = new MyStack(input.length());
//将字符串转换成字符数组存储在字符数组chars中
char[] chars = input.toCharArray();
//遍历字符数组,并压栈
for (int i = 0; i < chars.length; i++) {
stack.push(chars[i]);
}
//字符依次弹栈
while (!stack.isEmpty()) {
str.append(stack.pop());
}
//返回反序后的字符串
return str.toString();
}
}
/*
* 自己实现一个简单的栈
*/
class MyStack {
// 定义栈的容量
private int maxSize;
// 定义字符数组大小
private char[] charArray;
// 定义栈顶指针
private int top;
// 构造方法,指定栈的大小
public MyStack(int size) {
maxSize = size;
charArray = new char[maxSize];
top = -1;
}
// 压栈
public void push(char c) {
charArray[++top] = c;
}
// 弹栈
public char pop() {
return charArray[top--];
}
// 访问栈顶元素
public char getTop() {
return charArray[top];
}
// 栈是否为空
public boolean isEmpty() {
return top == -1;
}
// 栈是否满了
public boolean isFull() {
return top == maxSize - 1;
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2