欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

利用java实现单词倒序排列

程序员文章站 2024-03-06 09:40:01
本文就是会将数组里面的单词进行倒序排列 例如 how old are you -> you are old how 示例程序输出结果: the first:...

本文就是会将数组里面的单词进行倒序排列 例如 how old are you -> you are old how

示例程序输出结果:

the first:
how old are you !? i don't understand
the second:
understand don't i ?! you are old how

示例代码    

public static void main(string[] args) {
    char[] chars= new string("how old are you !? i don't understand").tochararray();
    system.out.println("the first:");
    system.out.println(chars);
     
    reversewords(chars); //主要方法
     
    system.out.println("the second:");
    system.out.println(chars);
  }
 
   
  /**
   * 会将数组里面的单词 倒序排列 例如 how old are you -> you are old how
   * @param chars
   */
  public static void reversewords(char[] chars) {
    reversechars(chars,0,chars.length-1);
    int begin = -1;
    int end = 0;
    for(int i=0;i<chars.length;i++){
      char c = chars[i];
      if((c>='a'&&c<='z')||(c>='a'&&c<='z')||c=='\''){ //简单的判断了一下是否是连续的单词
        if(begin==-1){
          begin = i;
          end=i;
        }else{
          end=i;
          if(i==chars.length-1){
            reversechars(chars,begin,end);
          }
        }
      }else{
        if(begin!=-1){
          reversechars(chars,begin,end);
          begin=-1;
          end=0;
        }
      }
    }
  }
 
  /**
   * 将char 一定范围内的 字符 倒序排列 例如   hello -> olleh
   * @param chars 数组
   * @param begin 开始位置
   * @param end  结束位置
   */
  public static void reversechars(char[] chars, int begin, int end) {
    while(end>begin){
      char c = chars[begin];
      chars[begin] = chars[end];
      chars[end] = c;
      begin++;
      end--;
    }
  }

以上就是利用java实现单词倒序排列,希望对大家能够理解,对大家有所帮助