2013-05-21 69 views
-1

我們的任務是使用Arraylist編碼創建待辦事項列表。創建一個ArrayList然後搜索列表並允許用戶更改列表的一部分或不是

然後更改代碼,以便它要求用戶在列表輸入後輸入一個字符串,它會告訴用戶該列表是否存在該字符串。

最後,如果已找到該字符串,則允許用戶輸入另一個字符串,並替換原始字符串。然後打印出列表。

這是我的:我不確定如何繼續。

import java.util.ArrayList; 
import java.util.Scanner; 
public class ArrayListDemo 
{ 
public static void main(String[] args) 
{ 
    ArrayList<String> toDoList = new ArrayList<String>(); 
    System.out.println("Enter items for the list, when prompted."); 
    boolean done = false; 
    Scanner keyboard = new Scanner(System.in); 

    while (!done) 
    { 
     System.out.println("Type an entry:"); 
     String entry = keyboard.nextLine(); 
     toDoList.add(entry); 
     System.out.print("More items for the list? "); 

     String ans = keyboard.nextLine(); 
     if (!ans.equalsIgnoreCase("yes")) 
      done = true; 
    } 

    System.out.println("The list contains:"); 
    int listSize = toDoList.size(); 
    for (int position = 0; position < listSize; position++) 
     System.out.println(toDoList.get(position)); 
    ) 
) 

我注意到,我可以納入:

ArrayList<String> searchList = new ArrayList<String>(); 
String search = "a"; 
int searchListLength = searchList.size(); 
for (int i = 0; i < searchListLength; i++) { 
if (searchList.get(i).contains(search)) { 
//Where do I put it after the List is printed or before? Any Help would be appricated 
} 
} 

這裏是什麼,我試圖做一個樣本輸出:

Enter items for the list, when prompted. 

Type an entry: 

Alice 

More items for the list? yes 

Type an entry: 

Bob 

More items for the list? yes 

Type an entry: 

Carol 

More items for the list? no 

The list contains: 

Alice 

Bob 

Carol 

Enter a String to search for: 

Bob 

Enter a String to replace with: 

Bill 

Bob found! 

The list contains: 

Alice 

Bill 

Carol 

如果沒有找到一個項目的用戶搜索那麼它會告訴他們「item」找不到!

+2

您的問題究竟是什麼? –

+0

我需要更改程序,以便在用戶輸入他們的列表後,它會提示他們搜索列表。如果該搜索位於列表中,則會提示他們更改他們不需要的特定項目 –

+0

只需添加示例輸出即可。我不確定如何使用代碼來允許用戶在輸入列表後搜索他們的列表,以及如果需要更改他們搜索的特定項目(如果發現)! –

回答

0

我會用indexOf()找到索引,然後如果項目不存在(index != -1),你會得到一個指標,然後您可以用它來代替使用set(int index, E item)的項目。

舉個例子,你可以這樣做..

boolean search=true; 
while(search) { 
    System.out.print("Search.."); 
    String searchFor = keyboard.nextLine(); 
    int ind = searchList.indexOf(searchFor); 
    if (ind == -1) { 
    System.out.println("Not Found"); 
    } else { 
    System.out.print("Replace with.. "); 
    String replaceWith = keyboard.nextLine(); 
    searchList.set(ind, replaceWith); 
    } 
    System.out.print("Continue searching.. "); 
    String ans = keyboard.nextLine(); 
    if (!ans.equalsIgnoreCase("yes")) 
    search = false; 
} 
+0

我明白了,如果我使用你的建議,我在哪裏放置它? –

+0

我看到了,所以我接受你的建議並將其添加到整個代碼中,或者將其替換爲上半部分? –

+0

謝謝你,在小的變化後工作。此外,一旦完成,我需要重新打印新列表不要我只使用相同的system.println編碼? nvm明白了 –

相關問題