字符串单词逆序

package com.java.ly2011.June;

import java.util.Arrays;

/**
 * 字符串单词逆序  如 hello world  -->world hello
 * @author ly
 *
 *
 */
public class StrWordReverse {
 public static void main(String[] args) {
  String string = "i am ly";
  char[] chs = string.toCharArray();
  
  
  char[] result = strWordReverse(chs);
  string = new String(result);
  System.out.println(string);
  
 }
 
 /**
  * 先逆序每个单词,在逆序整个数组
  * @param chs
  * @return
  */
 public static char[] strWordReverse(char[] chs){
  
  int bw = 0;
  int ew = 0;
  
  for(;ew<chs.length;ew++){
   if(chs[ew]==' '){
    strNormalReverse(chs, bw, ew-1);
    bw = ew + 1;
   }
   else if(ew == chs.length-1)
    strNormalReverse(chs, bw, ew);
  }
  
  strNormalReverse(chs, 0, chs.length-1);
  return chs;
 }
 
 
 private static char[] strNormalReverse(char[] chs , int begin , int end ){
  
  while(begin<end){
   char temp = chs[begin];
   chs[begin]=chs[end];
   chs[end] = temp;
   begin++;
   end--;
  }
  
  return chs;
  
 }
}

好的,这是两个问题,我分别回答。 1. Python字符串单词逆序输出、多空格 你可以使用split()方法将字符串分割成单词,并将单词存储在列表中。然后,你可以使用反向索引(-1、-2等)以相反的顺序遍历该列表,并将每个单词添加到新的字符串中。在添加单词时,你可以添加一个空格以分隔单词代码示例: ```python s = "Hello world! " words = s.split() new_s = "" for i in range(len(words)-1, -1, -1): new_s += words[i] + " " print(new_s) ``` 输出: ``` world! Hello ``` 在这个例子中,我们使用split()方法将字符串分割成单词,并将这些单词存储在名为words的列表中。我们使用一个for循环以相反的顺序遍历该列表,并将每个单词添加到名为new_s的新字符串中。我们还在每个单词后添加了一个空格,以便在单词之间创建空格。 请注意,我们将for循环的第三个参数设置为-1,以便在每次迭代中减少i的值。这使得i从最后一个元素开始,并以相反的顺序遍历该列表。 2. 反转字符串中的单词字母顺序 你可以使用split()方法将字符串分割成单词,并将每个单词转换为列表。然后,你可以使用切片将每个单词反转,然后使用join()方法将这些单词组合成新的字符串代码示例: ```python s = "Hello world!" words = s.split() for i in range(len(words)): words[i] = words[i][::-1] new_s = " ".join(words) print(new_s) ``` 输出: ``` olleH dlrow! ``` 在这个例子中,我们使用split()方法将字符串分割成单词,并将这些单词存储在名为words的列表中。然后,我们使用一个for循环遍历该列表,并使用切片将每个单词反转。我们还使用join()方法将这些单词组合成名为new_s的新字符串。 请注意,在切片中,我们使用了步长为-1,这意味着我们从右向左遍历该单词
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值