簡體   English   中英

如何按長度對字符串排序

[英]How to sort strings by length

我遇到了對數組中的字符串進行排序的問題。 我能夠對整數進行排序,但是我真的不知道如何將字符串從最短到最長排序。

我嘗試使用Strings.length將Strings轉換為整數,但是我不知道如何將其轉換回其原始String。

字符串處理程序;

        System.out.println("\nNow we will sort String arrays.");
        System.out.println("\nHow many words would you like to be sorted.");
        Input = in.nextInt();
        int Inputa = Input;
        String[] Strings = new String [Input];
        for (int a = 1; a <= Input; Input --) //will run however many times the user inputed it will
    {
        counter ++; //counter counts up
        System.out.println("Number " + counter + ": "); //display 
        userinputString = in.next();
        Strings[countera] = userinputString;  //adds input to array
        countera ++;
    }
        System.out.println("\nThe words you inputed are :");
        System.out.println(Arrays.toString(Strings));

        System.out.println("\nFrom shortest to longest the words are:");
        counter = 0;
        int[] String = new int [Strings.length];
    for (int i = 0; i < Strings.length; i++) //will run however many times the user inputed it will
    { 
       int a = Strings[i].length();
       String[i] = a;
    }

    System.out.println(Arrays.toString(String));

我希望能夠對實際的String進行排序,但是我正在獲取數字,並且無法找到如何在排序后將這些數字轉換回其字符串。

如果允許使用庫函數,則可能需要執行以下操作:

Arrays.sort(Strings, Comparator.comparing(String::length));

這適用於Java 8及更高版本。 只需確保導入import java.util.*; 在文件中的某個位置。

由於僅存儲長度,因此無法轉換它們-可能有許多長度相同的不同字符串。 取而代之的是,您可以嘗試實現自己的比較器並將其傳遞給java的sort方法:如果第一個字符串較長,則給定兩個字符串,如果相等則返回0,如果相等則返回-1。 您也可以在傳遞給Arrays.sort()的lambda比較器中執行此操作。

(s1, s2) -> {
      if (s1.length() < s2.length()) {
           return -1;
      }
      return s1.length() > s2.length();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM