字符串反转方法总结

描述:给我一个字符串,例如I love java,输出: java love I


方法一

[java] view plaincopyprint?

  1. public class StringReverse {
  2. public void swap(char[] arr, int begin, int end) {
  3. while(begin < end) {
  4. char temp = arr[begin];
  5. arr[begin] = arr[end];
  6. arr[end] = temp;
  7. begin++;
  8. end--;
  9. }
  10. }
  11. //I love java
  12. public String swapWords(String str) {
  13. char[] arr = str.toCharArray();
  14. swap(arr, 0, arr.length - 1);
  15. int begin = 0;
  16. for (int i = 1; i < arr.length; i++) {
  17. if (arr[i] == ‘ ‘) {
  18. swap(arr, begin, i - 1);
  19. begin = i + 1;
  20. }
  21. }
  22. return new String(arr);
  23. }
  24. public static void main(String[] args) {
  25. String str = "I love java";
  26. System.out.println(new StringReverse().swapWords(str));
  27. }
  28. }
public class StringReverse {

	public void swap(char[] arr, int begin, int end) {
		while(begin < end) {
			char temp = arr[begin];
			arr[begin] = arr[end];
			arr[end] = temp;
			begin++;
			end--;
		}
	}
	//I love java
	public String swapWords(String str) {
		char[] arr = str.toCharArray();
		swap(arr, 0, arr.length - 1);
		int begin = 0;
		for (int i = 1; i < arr.length; i++) {
			if (arr[i] == ‘ ‘) {
				swap(arr, begin, i - 1);
				begin = i + 1;
			}
		}

		return new String(arr);
	}

	public static void main(String[] args) {
		String str = "I love java";
		System.out.println(new StringReverse().swapWords(str));
	}

}

方法二:(利用jdk提供的方法)

[java] view plaincopyprint?

  1. public class Main {
  2. public static void main(String[] args) {
  3. Scanner sc = new Scanner(System.in);
  4. String str = sc.nextLine();
  5. String[] sArr = str.split(" ");//I love java
  6. List<String> list = new ArrayList<String>();
  7. list = Arrays.asList(sArr);
  8. //      for(int i=0;i<sArr.length;i++){
  9. //          list.add(sArr[i]);
  10. //      }
  11. Collections.reverse(list);
  12. for(String word:list){
  13. System.out.print(word+" ");
  14. }
  15. }
  16. }
public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		String str = sc.nextLine();

		String[] sArr = str.split(" ");//I love java

		List<String> list = new ArrayList<String>();

		list = Arrays.asList(sArr);

//		for(int i=0;i<sArr.length;i++){
//			list.add(sArr[i]);
//		}

		Collections.reverse(list);

		for(String word:list){
			System.out.print(word+" ");
		}
	}
}


另外,如果描述改一下,输入一个字符串,例如“abcd”,输出"dcba",


当然了方法很多,这里我提供一个jdk自带的方法,比较简单

[java] view plaincopyprint?

  1. public static String reverse(String str){
  2. return new StringBuilder(str).reverse().toString();
  3. }
public static String reverse(String str){
		return new StringBuilder(str).reverse().toString();
	}

[java] view plaincopyprint?

  1. @Test
  2. public void test09() {
  3. String str = "hello";
  4. for (int i = str.length() - 1; i >= 0; i--) {
  5. char c = str.charAt(i);
  6. System.out.print(c);
  7. }
  8. }
@Test
	public void test09() {
		String str = "hello";

		for (int i = str.length() - 1; i >= 0; i--) {

			char c = str.charAt(i);

			System.out.print(c);
		}
	}

版权声明:感觉我写的还算不错的的话希望你能够动动你的鼠标和键盘为我点上一个赞或是为我奉献上一个评论,在下感激不尽!_______________________________________________________欢迎转载,希望在你转载的同时,添加原文地址,谢谢配合

时间: 2024-10-26 09:37:11

字符串反转方法总结的相关文章

字符串反转方法汇总

split()方法将一个字符串对象的每个字符拆出来,并且将每个字符串当成数组的每个元素 reverse()方法用来改变数组,将数组中的元素倒个序排列,第一个数组元素成为最后一个,最后一个变成第一个 join()方法将数组中的所有元素边接成一个字符串 来看个实例: 1 function reverseString(str) { 2 // 第一步,使用split()方法,返回一个新数组 3 // var splitString = "hello".split("");

趣味算法:字符串反转的N种方法(转)

老赵在反对北大青鸟的随笔中提到了数组反转.这的确是一道非常基础的算法题,然而也是一道很不平常的算法题(也许所有的算法深究下去都会很不平常).因为我写着写着,就写出来8种方法……现在我们以字符串的反转为例,来介绍这几种方法并对它们的性能进行比较. 使用Array.Reverse方法 对于字符串反转,我们可以使用.NET类库自带的Array.Reverse方法 public static string ReverseByArray(this string original) { char[] c =

7 种将字符串反转的 Java 方法

import java.util.Stack;public class StringReverse { public static String reverse1(String s) { int length = s.length(); if (length <= 1) return s; String left = s.substring(0, length / 2); String right = s.substring(length / 2, length); return reverse

关于字符串反转的几种方法的比较

下面先上代码: class Program { static void Main(string[] args) { string str = "12345"; const int count = 10000; Stopwatch sw = Stopwatch.StartNew(); for (int i = 0; i < count; i++) { Reverse1(str); } Console.WriteLine("Reverse1耗时: {0}", sw

C#编程实践--字符串反转

朴素反转 朴素解法,倒序遍历,字符串拼接,字符串性能低下,在长度已知的前提可以使用char数组代替 public static string NaiveReverse(string text) { string reverse = string.Empty; for (int i = text.Length - 1; i >= 0; i--) { reverse += text[i]; } return reverse; } StringBuilder拼接 进一步改进,使用StringBuild

(转)c++字符串反转

//通过不同的方法,实现对所输入字符串的反转,可以很好地复习巩固 C++ 基础知识 /*分析过程: 假设要使传递的字符串为常量const字符串,这样操作更加灵活,可直接传递字符串字面值进行反转,常见的解决方法就是,定义一个新的与传递过来字符串长度 相等的字符数组,然后进行字符串拷贝,把str字符按从左到右放置到字符数组中,然后采用循环来对字符数组中字符反转 */ #include <iostream> #include <string> /*第一种,采用以上思路解法,传递为cons

JS 对 字符串反转

突然看到比较好的文章,列举了挺多比较好的方法,再次我也举一反三,写出一段代码. var str = "123456"; function reverseStr(s){ return s&&reverseStr(s.slice(1)) + s[0]; } alert(reverseStr(str)); 原文章:JavaScript算法练习:字符串反转

python学习之巧妙字符串反转

字符串反转是一个最常见的面试题,写法也很多种,下面给2家介绍2种,一种是常规写法,一种是巧妙写法: 题目:完成字符串abcd反转. 方法1:比较容易想到的想法,利用listdef reversestr(string):         strlist=[]          i=len(string)-1          while(i>=0):                  strlist.append(string[i])                   i-=1         

关于字符串反转和数组反转的问题

关于反转这个问题,在晚上查了些资料,有很多非常不错的思想,要熟练的掌握这些思想,现在把这些总结如下: 字符串反转: 1 import java.util.Stack; 2 3 public class StringInverse { 4 public static void main(String[] args) { 5 System.out.println(reverse7("abcde")); 6 } 7 //方式一 8 public static String reverse1(