在java中创建一个字符串按字母顺序排序?

时间:2017-03-03 02:27:09

标签: java

我试图按字母/反向字母顺序打印人名。到目前为止我有这个:

  Scanner name = new Scanner(System.in);
  String N1;                             
  String N2;                            
  String N3;                             
  double az_za;                         

   System.out.print("First name: ");
     N1 = name.nextLine();                    
   System.out.print("Middle name: ");
     N2 = name.nextLine();                  
   System.out.print("Last name: ");
     N3 = name.nextLine();                    

   System.out.print("Enter 1 (alphabetical order) or 2 (reverse alphabetical order):");
     az_za = name.nextDouble();                

String names[] = {N1, N2, N3}

我尝试过使用字符串,但我不确定在哪里可以看到。我也尝试过使用

if (N1.compareTo(N2) < 0) && (N1.compareTo(N3) < 0)

但是我不知道在{}中放什么,因为我把它放在什么地方按字母顺序隔离名字。

我已经尝试过一切我的能力。我研究并查了很多东西,但没有一个帮助我的情况,所以不要说“你有什么尝试,不会为你做功课”。顺便说一下,我也尝试过使用数组和char(?),但我们没有在课堂上学到这一点,所以我认为我们不能使用它们。

TY提前

编辑:

好的,我想我明白了:

String names[] = {N1, N2, N3};
         if (az_za == 1) {
         Arrays.sort(names);
        } else if (az_za == 2) {
             Arrays.sort(names, Collections.reverseOrder());

从这里开始编译但是我不确定在这里的实际印刷语句中放入什么“____”

      if (az_za == 1) {              
         System.out.println("Your name in alphabetical order is " + __________);  
     }if (az_za == 2) {               
         System.out.println("Your name in reverse alphabetical order is " +_____________);  

因为如果我把Arrays.sort(HERE)中的内容弄得一团糟......

3 个答案:

答案 0 :(得分:3)

将此添加到底部。

if (az_za == 1) {
    Arrays.sort(names);
} else if (az_za == 2) {
    Arrays.sort(names, Collections.reverseOrder());
} 

for (String namePart: names) {
    System.out.print(namePart + "   ");
}

答案 1 :(得分:0)

这是使用Java8执行此操作的最简单方法。

#!/usr/bin/env python

"""
################################################################################
#                                                                              #
# cool timin' yea                                                              #
#                                                                              #
################################################################################

usage:
    program [options]

options:
    -h, --help         display help message
    --version          display version and exit
    --dayruntime=TEXT  HHMM--HHMM [default: 1900--0700]
"""

import datetime
import docopt
import time

def main(options):

    day_run_time = options["--dayruntime"]

    while True:

        if in_daily_time_range(time_range = day_run_time):

            print("ok let's do this thing")

            # complex deep learning shit

        else:

            print("i'll wait till it's ma time fam")

            # doin' some other things while chillin'

        time.sleep(5)

def in_daily_time_range(
    time_range = None, # string "HHMM--HHMM" e.g. "1700--1000"
    time_start = None, # string "HHMM"       e.g. "1700"
    time_stop  = None  # string "HHMM"       e.g. "1000"
    ):

    if time_range is not None:
        time_start = time_range.split("--")[0]
        time_stop  = time_range.split("--")[1]

    time_start_datetime = datetime.datetime.combine(
        datetime.datetime.now().date(),
        datetime.datetime.strptime(
            time_start,
            "%H%M"
        ).time()
    )
    time_stop_datetime = datetime.datetime.combine(
        datetime.datetime.now().date(),
        datetime.datetime.strptime(
            time_stop,
            "%H%M"
        ).time()
    )
    if time_stop_datetime < time_start_datetime:
        time_stop_datetime =\
            time_stop_datetime + datetime.timedelta(hours = 24)

    if time_start_datetime      <=\
        datetime.datetime.now() <=\
        time_stop_datetime:
        return True
    else:
        return False

if __name__ == "__main__":
    options = docopt.docopt(__doc__)
    if options["--version"]:
        print(version)
        exit()
    main(options)

输出看起来像这样。

public class SortNames {    
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Steven", "Allen", "Bo");
        names.sort(String::compareToIgnoreCase);
        System.out.println(names);
    }    
}

答案 2 :(得分:0)

String[] arr = { "d", "a", "b", "c" };
Arrays.sort(arr); // for alphabetical order
Arrays.sort(arr, (a, b) -> b.compareTo(a)); // for reverse alphabetical order
System.out.println(Arrays.toString(arr));