2016-03-01 57 views
-3

如果以字母e和s開頭,我應該在列表的開頭打印單詞,如果以任何其他字母開頭,則打印結尾。 例如: 輸入:帶風扇雞蛋勞拉砂如何根據單詞開頭的順序排列列表?

輸出:砂卵帶風扇勞拉

我應該怎麼做才能讓工作?這是我迄今所做的:

import java.util.*; 

public class list { 
    public static void main(String[] args) { 
    Scanner scan = new Scanner(System.in); 

    LinkedList<String> names = new LinkedList<String>(); 
    String s = scan.next(); 
    final String[] letters = {"s", "S", "e", "E"}; 
    for (int i = 0; i < letters.length; i++) { 
     if (s.startsWith(letters[i])) { 
     names.addFirst(s); 
     } else { 
     names.addLast(s); 
     } 
     for (int f = 0; f < names.size(); f++) System.out.print(names.get(f) + " "); 
    } 
    } 
} 
+0

你沒有問我可以找到一個連貫的問題 – Kon

+0

請澄清您的要求,並顯示一些示例排序。如果你不這樣做,你的問題可能會吸引低估和收到投票。 –

+0

首先是'e'還是's'?大小寫是否重要?剩餘條目(不是'e'或's')應該按什麼順序排序?許多未明確的細節使答案困難。這是處理問題之前必須完成的基本需求收集。 –

回答

0

那麼有你做

  • s是整個列表中的用戶
  • 鍵入一些錯誤,你把for循環,打印在信中,讀取環路答案
  • 有時做的println(),而不是打印()

不過,這沒關係,我們都會犯錯誤,而您將n幫助。 所以,所以它是這樣的

import java.util.*; 

public class list { 
public static void main(String[] args) { 
Scanner scan = new Scanner(System.in); 

LinkedList<String> names = new LinkedList<>(); 
String s = scan.nextLine(); 
List<String> l = new ArrayList<>(); 
String k = ""; 
for (int i = 0; i < s.length();i++) { 
    if (s.charAt(i) == " ".charAt(0)) { 
     l.add(k); 
     k=""; 
    } else { 
     k = k + s.charAt(i); 
    } 
} 
final String[] letters = {"s", "S", "e", "E"}; 
for (String ss : l) { 
    boolean isfalse = true; 
    for (String letter : letters) { 
     if (ss.startsWith(letter)) { 
      names.addFirst(ss); 
      isfalse = false; 
      break; 
     } 
    } 
    if (isfalse) { 
     names.addLast(ss); 
    } 
} 
    for (String name : names) { 
     System.out.println(name); 
    }}} 

我希望這有助於你,我會解決它! :)

+0

非常感謝,幫助了很多! :) – Gigi

+0

不錯的代碼分享和提示。 – Drew

相關問題