实现字符串反转

问题描述:把一个句子中的单词进行反转,反转之前:“how are you”,反转之后:“you are how”。

具体步骤:

(1)先将整个字符串反转,反转后为:“uoy era woh”。
(2)再将每个单词反转过来,反转后为:“you are how”。

  1. 首先编写一个反转数组元素的方法swap()。
public void swap(char array[] ,int front,int end) {    //对数组中的元素进行倒转
		while(front<end) {      
			char tmp = array[end];
			array[end] = array[front];
			array[front] = tmp;
			front++;
			end--;
		}
	}
  1. 再编写swapWords()方法,先将字符串分割成单个字符的数组,然后反转整个字符数组,最后再逐个反转每个单词数组。
public String swapWords(String s) {
		
		//把字符串分割成单个字符的数组
		char array[] = s.toCharArray();
		
		//调用swap方法对整体进行字符串反转
		swap(array, 0 , array.length-1);
		//记录u敌后一组字符数组的开始位置
		int begin = 0;    
		
		//对每个单词进行字符串反转操作
		for(int i = 1; i<array.length; i++) {
			if(array[i] == ' ') {
				swap(array,begin,i-1);
				begin = i+1;   //空格的最后一位
			}
		}
		//对剩下的最后一组进行反转
		swap(array,begin,array.length-1);
		return new String(array);
	}
  1. 测试:
public static void main(String[] args) {
		String str = "how are you";
		System.out.println("字符串反转前:"+str);
		System.out.println("字符串反转后:"+new string().swapWords(str));
	}

  1. 运行截图:
    在这里插入图片描述
发布了17 篇原创文章 · 获赞 0 · 访问量 230

猜你喜欢

转载自blog.csdn.net/weixin_45646463/article/details/103748966