簡體   English   中英

在Java上排序字符串

[英]sorting strings on java

我必須以名字/名字/姓氏/名字/姓氏的格式詢問用戶的名字,然后按姓氏/名字/名字/名字排序。 使用我的代碼,我可以訪問名字,名字和姓氏並對其進行排序,但是我找不到訪問名字的方法。 我如何獲取該字符串並將其顯示在system.out.println上?

public static void getNameInOfficialFormat(String name) {
    int index = name.indexOf(" ");
    int secondIndex = name.lastIndexOf(" ");
    String secondLastName = "";
    String secondName = "";

    for (int i = index+1; i < name.length(); i++) {
        if (name.charAt(i)==' ') {
            break;
        }else{
            secondName= secondName.concat(""+name.charAt(i));
        }
    }
    for (int i = secondIndex+1; i < name.length(); i++) {
        if (name.charAt(i)==' ') {
            break;
        }else{
            secondLastName= secondLastName.concat(""+name.charAt(i));
        }
    }
    String nameOfUser="";
    for (int i = 0; i < name.length(); i++) {
        if (name.charAt(i)==' ') {
            break;
        }else{
            nameOfUser= nameOfUser.concat(""+name.charAt(i));
        }

    }
    System.out.println("Sorted name: " + "\n" +secondLastName + " " + nameOfUser + " " +  secondName);
}

如果用戶使用諸​​如John William Doe Jones之類的字符串調用該方法,則可以使用如下所示的split方法:

String[] names = name.split(" ");

知道他會按順序傳遞它們,那么您將獲得一個數組,其中將按順序包含每個名稱,然后您可以根據需要對其進行排序。 您可以這樣打印:

System.out.println("Sorted Name:\n" + names[3] + " " + names[0] + " " + names[1] + " " + names[2]);

這將打印Jones John Doe William。 我不確定您要如何輸出,但names [0]基本上是John(名字),names [1]是William(第二名字),names [2]是Doe(姓),names [3]是Jones (第二個姓氏)。

我希望這有幫助 :)

暫無
暫無

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

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