zoukankan      html  css  js  c++  java
  • 36:字符串排序SortString

    题目描述:编写一个程序,将输入字符串中的字符按如下规则排序。

    规则1:英文字母从A到Z排列,不区分大小写。

          如,输入:Type 输出:epTy

    规则2:同一个英文字母的大小写同时存在时,按照输入顺序排列。

        如,输入:BabA 输出:aABb

    规则3:非英文字母的其它字符保持原来的位置。

        如,输入:By?e 输出:Be?y

    样例:

        输入:

       A Famous Saying: Much Ado About Nothing(2012/8).

        输出:

       A aaAAbc dFgghh: iimM nNn oooos Sttuuuy (2012/8).

     思路:一个嵌套循环把字符串中的字母进行排序,把所有排序后的字母专门放在temp[]中,最后输出的时候,遍历原来的字符数组,如果某一位是字母,那么去temp中取对应位置已经排好序的字母输出,非字母,就输出原位置字符。

     1 /*题目描述:编写一个程序,将输入字符串中的字符按如下规则排序。
     2 规则1:英文字母从A到Z排列,不区分大小写。
     3       如,输入:Type 输出:epTy
     4 规则2:同一个英文字母的大小写同时存在时,按照输入顺序排列。
     5     如,输入:BabA 输出:aABb
     6 规则3:非英文字母的其它字符保持原来的位置。
     7     如,输入:By?e 输出:Be?y
     8 样例:
     9     输入:
    10    A Famous Saying: Much Ado About Nothing(2012/8).
    11     输出:
    12    A aaAAbc dFgghh: iimM nNn oooos Sttuuuy (2012/8).
    13 */
    14 import java.util.Scanner;
    15 
    16 public class Main {
    17 
    18     public static void main(String[] args) {
    19         // TODO Auto-generated method stub
    20         Scanner in = new Scanner(System.in);
    21         while(in.hasNext())
    22         {
    23             String input = in.nextLine();
    24             int length = input.length();
    25             char[] array = input.toCharArray();
    26             //input里面的所有字母排序
    27             char[] temp = new char[length];
    28             int k = 0;
    29             for(int i = 0; i<26; i++)
    30             {
    31                 for(int j = 0; j<length; j++)
    32                 {
    33                     if(array[j] - 'a' == i || array[j] - 'A' == i)
    34                     {
    35                         temp[k++] = array[j];
    36                     }
    37                 }
    38             }
    39             //notice!!
    40             k = 0;
    41             for(int i = 0; i<length; i++)
    42             {
    43                 if(array[i] >= 'a' && array[i] <= 'z' || array[i] >= 'A' && array[i] <= 'Z')
    44                 {
    45                     array[i] = temp[k++];
    46                     //array[i] = temp[i];
    47                 }
    48             }
    49             System.out.println(String.valueOf(array));
    50         }
    51     }
    52 
    53 }
  • 相关阅读:
    逆序对
    归并排序
    快速排序
    利用WPF InkCanvas水墨控件圈选移动笔画
    Vue使用websocket进行心跳连接
    socket + vue + canvas实践,你画我猜(一)
    Vue+WebSocket+ES6+Canvas 制作【你画我猜】小游戏
    HTML5 canvas实现画板功能
    Canvas手工作图并实时同步复现(利用websocket)
    什么是SoC?
  • 原文地址:https://www.cnblogs.com/newcoder/p/5814732.html
Copyright © 2011-2022 走看看