java笔试中字符串翻转的几种方法
2017-08-29 17:10
405 查看
1.调用reversel()方法实现翻转
通过new一个新的StringBuffer调用自带方法
2.通过字符串数组实现从尾部开始逐个逆序放入字符串中
3.通过字符串数组实现从头部开始逐个正序放入字符串中
4.C语言中常用的方法:
以上四种转自
http://blog.sina.com.cn/s/blog_a5ef63c701013dw8.html
5.利用栈的先入后出的特性实现字符串的逆转
6.通过二位进制的右移,也就是/2,实现。与方法4异曲同工
以上两种转自
http://blog.csdn href="http://lib.csdn.net/base/dotnet" target=_blank>.NET/hhxin635612026/article/details/26944053
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.< 134eb /span>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 href="http://lib.csdn.net/base/dotnet" target=_blank>.NET/hhxin635612026/article/details/26944053
importjava.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();
}
}
相关文章推荐
- java笔试中字符串翻转的几种方法(java---华为----字符逆序)
- JAVA中几种字符串翻转的方法
- Java笔试之几种字符串逆序的方法
- Java实现字符串倒序输出的几种方法
- java判断回文字符串的几种方法
- Format类 格式化和几种字符串翻转方法
- Java 其中翻转字符串的实现方法
- java中判断字符串是否为数字的方法的几种方法
- 关于java中字符串反转的几种方法
- java中判断字符串是否为数字的方法的几种方法
- (转载)java中判断字符串是否为数字的方法的几种方法
- Java判断字符串是否为空的几种方法
- Java实现字符串倒序输出的几种方法
- java中判断字符串是否为数字的几种方法
- Java实现字符串倒序输出的几种方法
- java中判断字符串是否为数字的方法的几种方法
- 笔试面试题二:Java中交换两个变量的值,你能想到几种方法?
- Java:去除字符串中空格的几种方法
- java中判断字符串是否为数字的方法的几种方法
- Java字符串中去掉空格的几种方法