字符串中的单词反转

将一句英文语句中的每个单词进行反转,空格及标点符号保持不变。
如"hi,nice to meet you!" 反转后结果为:"ih,ecin ot teem uoy!"
输入、输出描述
输入:
英文语句字符串
输出:
每个单词反转后的语句字符串
Example
输入:
hi,nice to meet you!
输出:
ih,ecin ot teem uoy!
代码:
import java.util.*;
 
public class Main {
  public String solution(String input) {
    if(input == null){
      return null;
    }
    char[] array = input.toCharArray();//将字符串转为数组
    int begin = 0;
    int end = 0;
    int i = 0;
    while (i<array.length) {
      while (i<array.length && !isNumOrLetter(array[i])) {
        i++;
      }
      begin = i;//单词首字母的下标
      while (i<array.length && isNumOrLetter(array[i])) {//获取单词尾字母后第一个空格或标点符号的下标
        i++;
      }
      end = i-1;//单词尾字母
      swapStr(array, begin, end);
    }
    String result = new String(array);
    return result;
  }
   public boolean isNumOrLetter(char a) {
    return ((a >='0'&&a<='9') || (a>='A'&&a<='Z') || (a>='a'&&a<='z'));
  }
    public void swapStr(char[] array, int begin, int end) {
    while (begin < end) {
      char tmp = array[begin];
      array[begin] = array[end];
      array[end] = tmp;
      begin++;
      end--;
    } 
  }
 
}
一个创业中的苦逼程序员
评论专区

隐藏