java笔试中字符串翻转的几种方法(java---华为----字符逆序)
来源:互联网 发布:蓝色星球软件 编辑:程序博客网 时间:2024/06/03 15:16
1.调用reversel()方法实现翻转
public static String reversel1(String str){ return new StringBuffer(str).reverse().toString();}通过new一个新的StringBuffer调用自带方法
2.通过字符串数组实现从尾部开始逐个逆序放入字符串中
public static String reverse2(String s){ char[] array = s.toCharArray(); //String转字符数组 String reverse = ""; //注意这是空串,不是null for (int i = array.length - 1; i >= 0; i--){ reverse += array[i]; // 即String="reverse", // 放入时会"r";"e";"v";"e";"r";"s";"e";的放入String.charAt(String.charAt(length--)) } return reverse;}
3.通过字符串数组实现从头部开始逐个正序放入字符串中
public static String reverse3(String s){ int length = s.length(); String reverse = ""; //注意这是空串,不是null for (int i = 0; i < length; i++){ reverse = s.charAt(i) + reverse;//在字符串前面连接, 而非常见的后面 //即String="reverse", // 放入时会"e";"s";"r";"e";"v";"e";"r";的放入String。charAt(i++) //从尾到头正序放入 } return reverse;}
4.C语言中常用的方法:
public static String reverse5(String orig){ char[] s = orig.toCharArray(); int n = s.length - 1; int halfLength = n / 2; for (int i = 0; i <= halfLength; i++) { char temp = s[i]; s[i] = s[n - i]; s[n - i] = temp; } return new String(s); //知道 char数组和String相互转化}
以上四种转自
http://blog.sina.com.cn/s/blog_a5ef63c701013dw8.html
5.利用栈的先入后出的特性实现字符串的逆转
public static String reverse5(String string) { StringBuffer sb = new StringBuffer(); Stack<Character> s = new Stack<Character>(); for (int i = 0; i < string.length(); i++) { s.add(string.charAt(i)); } for (int i = 0; i < string.length(); i++) { sb.append(s.pop()); } return sb.toString();}
6.通过二位进制的右移,也就是/2,实现。与方法4异曲同工
public static String reverse6(String string) { StringBuffer sb = new StringBuffer(string); 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)); sb.setCharAt(j, temp); } return sb.toString();}以上两种转自
http://blog.csdn.net/hhxin635612026/article/details/26944053
import java.util.Scanner;import java.util.Stack;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNext()){ String str = sc.nextLine(); //逆序翻转 System.out.println(reverse1(str)); } } public static String reverse1(String str){ return new StringBuffer(str).reverse().toString(); } public static String reverse2(String s) { char[] array = s.toCharArray(); //String转字符数组 String reverse = ""; //注意这是空串,不是null for (int i = array.length - 1; i >= 0; i--){ reverse += array[i]; // 即String="reverse", // 放入时会"r";"e";"v";"e";"r";"s";"e";的放入String.charAt(String.charAt(length--)) } return reverse; } public static String reverse3(String s) { int length = s.length(); String reverse = ""; //注意这是空串,不是null for (int i = 0; i < length; i++){ reverse = s.charAt(i) + reverse;//在字符串前面连接, 而非常见的后面 //即String="reverse", // 放入时会"e";"s";"r";"e";"v";"e";"r";的放入String。charAt(i++) //从尾到头正序放入 } return reverse; } public static String reverse4(String orig) { char[] s = orig.toCharArray(); int n = s.length - 1; int halfLength = n / 2; for (int i = 0; i <= halfLength; i++) { char temp = s[i]; s[i] = s[n - i]; s[n - i] = temp; } return new String(s); //知道 char数组和String相互转化 } public static String reverse5(String string) { StringBuffer sb = new StringBuffer(); Stack<Character> s = new Stack<Character>(); //new一个栈 for (int i = 0; i < string.length(); i++) { s.add(string.charAt(i)); //往栈中逐个正序放入字符型string.charAt(i++); } for (int i = 0; i < string.length(); i++) { sb.append(s.pop()); //栈取出的顺序与放入的顺序相反,所以实现逆序 //length=string.length(); // 逐个增加string.charAt(length--); } return sb.toString(); } public static String reverse6(String string) { StringBuffer sb = new StringBuffer(string); 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)); sb.setCharAt(j, temp); } return sb.toString(); } public static String reverse7(String string) { StringBuffer sb = new StringBuffer(); for (int i = string.length() - 1; i >= 0; i--) { sb.append(string.charAt(i)); } return sb.toString(); }}
阅读全文
0 0
- java笔试中字符串翻转的几种方法(java---华为----字符逆序)
- java笔试中字符串翻转的几种方法
- Java笔试之几种字符串逆序的方法
- 华为OJ训练之0018-170105-字符串翻转(字符逆序题目)
- 华为oj 字符串个数统计&&数字颠倒&&字符串翻转&&字符逆序&&求int型数据在内存中存储时1的个数
- 对字符串翻转的几种方法
- 关于字符串翻转的几种方法
- 去掉字符串中重复的字符 --- 华为笔试题
- [转]去掉字符串中重复的字符 --- 华为笔试题
- 华为笔试:删除字符串中出现次数最少的字符
- 字符串逆序的几种方法
- Java中去除字符串中空格的几种方法
- Java中去除字符串中空格的几种方法
- 华为OJ:字符逆序和单词翻转
- java中字符、字符串的常用方法
- JAVA中几种字符串翻转的方法
- 华为OJ ---找出字符串中第一个只出现一次的字符(java实现)
- 华为上机试题(java)找出一个字符串中出现次数最多的字符
- Kubernetes存储之Persistent Volumes简介
- 第36课:kaishi 彻底解密Spark 2.1.X中Sort Shuffle中Reducer端源码内幕
- C.4 玩数字
- JS练习-360°全景图片
- C.5 坐标转换
- java笔试中字符串翻转的几种方法(java---华为----字符逆序)
- 《UNIX环境高级编程》第10章 信号
- lintcode刷题(Python)(3)
- a string intern pool,new string 存贮
- java设计模式(装饰者模式)
- Android无需权限显示悬浮窗, 兼谈逆向分析app
- sql练习网站
- JAVA中的this关键字
- 关于SQL和HQL时间类型的模糊查询