该程序应该采用用户输入的句子,例如“我很饿”,然后要求旋转多个单词。如果数字为2,则新输出将“非常饥饿”。这是我的代码到目前为止,但我似乎有一个错误。当我运行代码时,会出现:java.util.InputMismatchException。它下面还有一些其他信息,但我不确定它的含义。到目前为止,这是我的代码。
import java.util.*;
public class WordRotation
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println("Enter a sentence");
if(input.hasNext());
{
String s = input.next();
String[] words = s.split(" ");
System.out.println("Enter number of words to be rotated");
int rotation = input.nextInt();
for (int i = 0;i < words.length;i++)
{
System.out.print(words[(i + words.length - rotation)%words.length] + " ");
}
}
}
}
我尝试将我的if语句更改为while语句,但代码从不输出任何内容,只是继续加载。
答案 0 :(得分:2)
将String s = input.next();
更改为String s = input.nextLine();
是的,它实际上是一个解决方案,因为在我们点击Enter后,在我们点击\n
并且Enter
读取.nextInt()
<后,仍有\n
在流中强>和你的号码。如果我们使用input.nextLine()
代替input.next()
,我们会捕获\n
,而input.nextInt()
将会在没有\n
的情况下读取下一个整数。
答案 1 :(得分:0)
您需要在
之后再次阅读输入 System.out.println("Enter number of words to be rotated");
添加此行
Scanner input2 = new Scanner(System.in);
int rotation = input2.nextInt();