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]);
}
}
}
}
添加回答
举报