簡體   English   中英

在Java中不按數組的字母順序對字符串排序

[英]Sort a string in alphabetical order without arrays in java

我需要做的是取一個包含隨機字母的字符串,然后按字母順序排列字母。 例如,lidfj將是; dfijl。

我要弄清楚的是如何啟動代碼。 我知道我可能需要使用compare to,因為不允許使用數組,但是我不確定這是否是最好的方法。 我也不知道該如何開始。

提前致謝。

編輯:我想我已經晚上住完了,因為我似乎再也沒有想到其他任何事情了。

public class PP426 {
    public static String alphabetize (String input) {
        String sorted = ";
        for (int i = 0; i < input.length(); i++) {
            char c = input.charAt(i);
            if () {
                sorted += character;
            }
        }

        return sorted;

    }
    public static void main(String[] args) {
        System.out.println(alphabetize("iunaselfksdf"));
    }
}

從您的問題和評論看來,這似乎是一項家庭作業,只允許您使用String類進行排序(顯然效率不高,但是...好吧...仍然是一項家庭作業)。

在這里,我假設您已經對如何使用數組進行排序(例如冒泡排序)有所了解。 如果不是,請搜索最簡單的排序算法(例如插入排序)並進行學習。

如果您知道如何對數組進行排序,則可以簡單地轉換邏輯以使用String的方法。

例如:

  • 在以下位置訪問字符: yourString.charAt(i)
  • 在以下位置設置字符: yourString = yourString.substring(0, i) + charToSet + yourString.substring(i+1)
  • 附加字符: yourString += charToSet

如果您甚至不了解排序,那么以下一種有效的方法僅涉及String:

我不會給您實際的代碼。 自己學習:

for currentChar in 'a' to 'z'
  loop through each char in inputString
    if you encounter any char = currentChar then 
       append that character to resultString
    end if 
  end loop
end for

resultString contains the result you need

使用for循環和String.charAt()遍歷字符串。 使用StringBuilder (為了提高效率,連接字符串也可以,但從性能上考慮)可以按順序組裝字母。 有了這些知識,現在就可以為您實現首選的排序算法(我想這是練習的一部分,因此在這里我不會做;))

暫無
暫無

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

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