5 回答

TA貢獻1818條經驗 獲得超7個贊
您可以使用掃描儀對象的下一個方法來讀取字符串,然后可以輕松地在新行上打印它。
while(true){
if(scanner.hasNext()){
System.out.println(scanner.next());
}
else{
break;
}
}

TA貢獻1780條經驗 獲得超5個贊
我認為這應該可以完成工作。如果您有任何疑問,請隨時詢問。
import java.util.Scanner;
class App {
public static void main(String[] args) {
final StringBuffer line = new StringBuffer();
final StringBuffer words = new StringBuffer();
try (final Scanner sc = new Scanner(System.in)) {
while (sc.hasNextLine()) {
final String currentLine = sc.nextLine();
line.append(currentLine).append(System.lineSeparator());
for (final String word : currentLine.split("\\s+")) {
words.append(word).append(System.lineSeparator());
}
}
} finally {
System.out.println(line.toString());
System.out.println();
System.out.println(words.toString());
}
}
}

TA貢獻1824條經驗 獲得超5個贊
我的第一個問題是,大小為 3 的數組 (userInputSplitFirstLine) 和大小為 2 的數組 (userInputSplitSecondLine) 如何分別容納超過 3 個和 2 個元素?
這里的數組:
String[] userInputSplitFirstLine = new String[3];
與您收到的不同split:
userInputSplitFirstLine = userInput.split("\\s+");
當您執行上述分配時,其中的舊數組基本上被“覆蓋”,現在userInputSplitFirstLine引用的新數組的長度與舊數組的長度無關。split 總是返回一個新數組。
我的第二個問題是如何限制用戶可以在一行中插入的單詞數?例如,第一行只接受3個單詞,第二行只接受2個單詞?
這實際上取決于您所說的“限制”是什么意思。如果你只是想檢查是否正好是三個單詞,如果不是,則退出程序,你可以這樣做:
userInputSplitFirstLine = userInput.split("\\s+");
if (userInputSplitFirstLine.length != 3) {
System.out.println("Please enter exactly 3 words!");
return;
}
您可以對第二行執行類似的操作。
如果您希望用戶無法輸入超過 3 個單詞,那么這是不可能的,因為這是一個命令行應用程序。
順便說一句,建議的解決方案中的代碼可以工作,因為next()默認返回下一個“單詞”(或者我們通常認為的單詞)。

TA貢獻1803條經驗 獲得超6個贊
解決問題的方法:
編寫一個程序,從標準輸入讀取五個單詞,并在新行中輸出每個單詞。
這是我的解決方案:
while(scanner.hasNext()){ System.out.println(scanner.next()); }

TA貢獻1813條經驗 獲得超2個贊
希望對你有幫助!
public class pratice1 {
public static void main (String[]args) {
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
String input1 = sc.nextLine();
char[]a =input.toCharArray();
char[]a1 = input1.toCharArray();
System.out.println(input +""+ input1);
int a2=0;
if(input!=null) {
for(int i=0;i<input.length();i++) {
if(a[i]==' ') {
a2=i;
for(int j=0;j<a2;j++) {
System.out.println(a[i]);
a2=0;
}
}
else System.out.print(a[i]);
}System.out.println("");
for(int i=0;i<input1.length();i++) {
if(a1[i]==' ') {
a2=i;
for(int j=0;j<a2;j++) {
System.out.println(a1[i]);
a2=0;
}
}
else System.out.print(a1[i]);
}
}
}
}
添加回答
舉報