反转字符串 java_反转字符串的7种方法(Java)

反转字符串的7种方法(Java)

发布时间:2018-04-28 16:38,

浏览次数:477

, 标签:

Java

import java.util.Scanner; import java.util.Stack; /** * seven methods for

reversing */ public class reverseString { public static void main(String[]

args) {// TODO Auto-generated method stub System.out.print("Please input your

string : "); Scanner sc = new Scanner(System.in); //迭代器 while(sc.hasNext()){

//hasNext()检查序列中是否有元素,有则返true。next()获得下一个元素,返回值:元素 String str = sc.nextLine();

//Enter键为结束符,返回Enter键前的所有字符(可得到带空格的字符串)。next()对输入有效字符前遇到Tab键、空格键、Enter键等,会被视为结束符

System.out.println("The reversing string is : "+reverse7(str)); //此处变换函数 } }

//利用StringBuffer的内置reverse方法进行逆序排序 public static String reverse1(String str){

return new StringBuffer(str).reverse().toString(); }

//从头部开始,正序:通过字符串数组实现从尾部开始esrever顺序逐个进入字符串reverse public static String

reverse2(Stringstr){ int len =str.length(); String reverse = ""; //空串。方便拼接字符串

for(int i = 0; i

index) 返回指定索引处的字符。 } return reverse; } //从尾部开始,倒序 public static String

reverse3(Stringstr){ char[] arr = str.toCharArray(); //string转换成char数组 String

reverse = ""; for(int i=arr.length-1;i>=0;i--){ reverse +=arr[i]; } return

reverse; } //利用栈:First In Last Out //java中不用手动销毁 public static String

reverse4(Stringstr) { StringBuffer sb = new StringBuffer(); Stack s =

new Stack(); //创建只装字符型的stack for(int i = 0;i

str.charAt(i)); for(int i = 0;i

//出栈,StringBuffer.append()添加到sb的缓冲区末端;.insert(int index,添加的内容)添加到指定位置 return

sb.toString(); }//二位进制的右移,利用临时变量进行交换 public static String reverse5(String str)

{ StringBuffer sb =new StringBuffer(); for(int i = 0, j = sb.length()-1;i <

sb.length()>>>1;i++,j--){ //右移>> char temp = sb.charAt(i); sb.setCharAt(i,

sb.charAt(j));//setCharAt(int index取代的位置, Char ch要替换为的字符串) sb.setCharAt(j,

temp); }return sb.toString(); } //递归 public static String reverse6(String str){

int len = str.length(); if(len <= 1 ) return str; String left = str.substring(0

, len/2); String right = str.substring(len/2,len); return reverse6(left) +

reverse6(right); }//异或^ public static String reverse7(String str){ char[] s =

str.toCharArray(); int begin = 0; int end = str.length()-1; while(begin < end){

s[begin] = (char)(s[begin] ^ s[end]); System.out.println("第一次^ : "

+s[begin]+s[end]); s[end] = (char)(s[begin] ^ s[end]); //s[begin] 被

s[end]异或两次,得到s[begin] 赋值给s[end] System.out.println("第二次^ : "+s[begin]+s[end]);

s[begin] = (char)(s[end]^s[begin] ); System.out.println("第三次^ : "

+s[begin]+s[end]);//换位成功 begin++; end--; } return new String(s); } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值