[英]how to add list of strings into an arraylist from console and the program should print the reverse of string on pressing ctrl+z
我正在嘗試從控制台添加字符串列表,並在按ctrl + z時,控制台應該停止輸入並以相反的順序打印字符串
我有代碼將它們打印回來我想知道循環的編寫方式
public class Names {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
Scanner sc = new Scanner(System.in);
String one = sc.next();
String two = sc.next();
String three = sc.next();
String four = sc.next();
list.add(one);
list.add(two);
list.add(three);
list.add(four);
//System.out.println("size of list is :" +list.size());
for (int i = list.size()-1; i >=0; i--) {
System.out.println(list.get(i));
}
}
}
好吧,您有些倒退了。
首先,CTRL + Z將使正在運行的進程置於后台並停止運行(在Linux上)。 你可能不想要那個。 我建議您停止在某些終端值上輸入,例如空字符串。
其次,您想無限期地將輸入輸入到列表中,而不僅僅是四個元素。 您聲明的四個String
變量充其量是毫無意義的,它們會使您偏離自己的真實意圖。 您在這里的“陷阱”時刻是避免永遠輸入信息; 當他們輸入空字符串時停止它們。 這是一個片段/示例:
while(sc.hasNextLine()){
final String s = sc.nextLine();
if(!"".equals(s)) {
list.add(s);
} else {
break;
}
}
其他一切看起來都很好(您的循環可以反向執行)。
我只是通過將字符串添加到第一個位置來向后添加它們,然后打印代碼大大簡化了:
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
Scanner sc = new Scanner(System.in);
for(String s = sc.next(); !s.isEmpty(); s = sc.next())
list.add(0, s);
for (String s : list)
System.out.println(s);
}
ArrayList<String> list = new ArrayList<String>();
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
list.add(sc.next());
}
//System.out.println("size of list is :" +list.size());
for (int i = list.size()-1; i >=0; i--) {
System.out.println(list.get(i));
}
我只是修復了您的代碼以避免Exception。 如果輸入了兩行,掃描程序將在ArrayList中添加兩行,然后for循環將遍歷列表並從后向打印。
假設您輸入了8行,for循環將循環7、6,... 0。 根據您的代碼,for循環將開始max-1(8-1 = 7),然后它將與條件(7> 0)匹配; 如果條件匹配,它將打印ArrayList的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.