Java中5种方式实现String反转
程序员文章站
2024-03-13 09:31:09
这里介绍java中5中实现string反转的方式。
一、数组实现string反转
//数组实现string反转
public string reverse...
这里介绍java中5中实现string反转的方式。
一、数组实现string反转
//数组实现string反转 public string reversebyarray(){ if(str == null || str.length() == 1){ return null; } char[] ch = str.tochararray();//字符串转换成字符数组 for(int i = 0 ; i < ch.length/2 ; i++){ char temp = ch[i]; ch[i] = ch[ch.length-i-1]; ch[ch.length-i-1] = temp; } return new string(ch); }
二、栈实现string反转
//用栈实现string反转 public string reversebystack(){ if(str == null || str.length() == 1){ return null; } stack<character> stack = new stack<character>(); char[] ch = str.tochararray();//字符串转换成字符数组 for (char c : ch) { stack.push(c);//每个字符,推进栈 } for (int i = 0; i < ch.length; i++) { ch[i] = stack.pop();//移除这个堆栈的顶部对象 } return new string(ch); }
三、逆序遍历实现string反转
//用逆序遍历实现string反转 public string reversebysort(){ if(str == null || str.length() == 1){ return null; } stringbuffer sb = new stringbuffer(); for (int i = str.length() -1 ; i >= 0; i--) { sb.append(str.charat(i));//使用stringbuffer从右往左拼接字符 } return sb.tostring(); }
四、位运算实现string反转
//使用位运算实现string反转 public string reversebybit() { if(str == null || str.length() == 1){ return null; } char[] ch = str.tochararray();//字符串转换成字符数组 int len = str.length(); for(int i= 0; i< len/ 2; i++) { ch[i]^= ch[len- 1- i]; ch[len- 1- i]^= ch[i]; ch[i]^= ch[len- 1- i]; } return new string(ch); }
五、递归实现string反转
//使用递归实现string反转 public string reversebyrecursive(string str){ if(str == null || str.length() == 0){ return null; } if(str.length() == 1){ return str; } else { //从下标为1开始截取字符串,在返回下标为0的字符 return reversebyrecursive(str.substring(1)) + str.charat(0); } }
六、测试
public class test { public static void main(string[] args) { string s = "123456"; reverse r = new reverse(s); system.out.println(r.reversebyarray()); system.out.println(r.reversebystack()); system.out.println(r.reversebysort()); system.out.println(r.reversebybit()); system.out.println(r.reversebyrecursive(s)); } }
七、结果
八、用于string反转的全部代码
public class reverse { private string str = null; public reverse(string str){ this.str = str; } //数组实现string反转 public string reversebyarray(){ if(str == null || str.length() == 1){ return null; } char[] ch = str.tochararray();//字符串转换成字符数组 for(int i = 0 ; i < ch.length/2 ; i++){ char temp = ch[i]; ch[i] = ch[ch.length-i-1]; ch[ch.length-i-1] = temp; } return new string(ch); } //用栈实现string反转 public string reversebystack(){ if(str == null || str.length() == 1){ return null; } stack<character> stack = new stack<character>(); char[] ch = str.tochararray();//字符串转换成字符数组 for (char c : ch) { stack.push(c);//每个字符,推进栈 } for (int i = 0; i < ch.length; i++) { ch[i] = stack.pop();//移除这个堆栈的顶部对象 } return new string(ch); } //用逆序遍历实现string反转 public string reversebysort(){ if(str == null || str.length() == 1){ return null; } stringbuffer sb = new stringbuffer(); for (int i = str.length() -1 ; i >= 0; i--) { sb.append(str.charat(i));//使用stringbuffer从右往左拼接字符 } return sb.tostring(); } //使用位运算实现string反转 public string reversebybit() { if(str == null || str.length() == 1){ return null; } char[] ch = str.tochararray();//字符串转换成字符数组 int len = str.length(); for(int i= 0; i< len/ 2; i++) { ch[i]^= ch[len- 1- i]; ch[len- 1- i]^= ch[i]; ch[i]^= ch[len- 1- i]; } return new string(ch); } //使用递归实现string反转 public string reversebyrecursive(string str){ if(str == null || str.length() == 0){ return null; } if(str.length() == 1){ return str; } else { //从下标为1开始截取字符串,在返回下标为0的字符 return reversebyrecursive(str.substring(1)) + str.charat(0); } } }
以上这篇java中5种方式实现string反转就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
上一篇: java int转byte和long转byte的方法
下一篇: Java 时间转换的实例代码