Java 用空格和换行符分隔的用户输入
我已经生成了一段代码,它得到4个输入,并计算所有输入的平方根Java 用空格和换行符分隔的用户输入,java,Java,我已经生成了一段代码,它得到4个输入,并计算所有输入的平方根 int i; System.out.print("print numbers here:"); int[] arr = new int[4]; Scanner in = new Scanner(System.in); for (i = 0; i < arr.length; i++ ){ arr[i] = in.nextInt(); } for (i = a
int i;
System.out.print("print numbers here:");
int[] arr = new int[4];
Scanner in = new Scanner(System.in);
for (i = 0; i < arr.length; i++ ){
arr[i] = in.nextInt();
}
for (i = arr.length; i > 0; --i){
double s =Math.sqrt(arr[i-1]);
System.out.println(s);
}
1427是第一个数字,0是第二个数字,以此类推。。我是java和编程新手,我没有任何想法。如果可以的话,请帮助我。
提前谢谢 如果要使用空格字符(空格和换行符)分割答案,请尝试使用Java中的.split函数。在您的情况下,您可以将从用户收到的输入作为字符串,然后执行以下操作:
String[] inputVariables = string.split("\\s");
(请注意\s表示所有空白字符,“string”是您收到的输入)
现在您有了从用户接收的输入的字符串数组。然后,您可以对每个字符串使用Integer.parseInt将它们从字符串转换为整数,现在您已经准备好四个整数进行平方根化。您可以尝试以下方法
for (i = 0; i < arr.length; i++ ){
try{
String []nos = in.nextLine().split("\\s+");
if(nos.length > 0)
{
for(String no:nos)
arr[i] = Integer.parseInt(no);
}else{
arr[i] = Integer.parseInt(in.nextLine());
}
}catch(Exception e){
i--;
}
}
for(i=0;i0)
{
用于(字符串编号:个)
arr[i]=整数.parseInt(否);
}否则{
arr[i]=Integer.parseInt(in.nextLine());
}
}捕获(例外e){
我--;
}
}
将您的呼叫替换为。这将检索下一个单词,空格字符作为分隔符(换行符和空格)。这将允许任何数量的空间、空行等
示例:
System.out.print("print numbers here:");
int[] arr = new int[4];
Scanner in = new Scanner(System.in);
for (int i = 0; i < arr.length; i++){
int num;
try {
num = Integer.parseInt(in.next()); // get input
} catch (NumberFormatException e) {
// invalid number
}
arr[i] = num;
}
for (int i = arr.length; i > 0; i--) {
double s = Math.sqrt(arr[i-1]);
System.out.println(s);
} // this is printing the square roots in reverse order, you may want to change
// that to avoid confusion
System.out.print(“在此处打印数字:”);
int[]arr=新的int[4];
扫描仪输入=新扫描仪(系统输入);
对于(int i=0;i0;i--){
双s=数学sqrt(arr[i-1]);
系统输出打印项次;
}//这是按相反顺序打印平方根,您可能需要更改
//这是为了避免混淆
您能清楚地解释您的问题吗?您是否在一行中输入所有4个数字?还是4行?有不同的行,请说明2行是空的。您是如何输入这些数字的?因为如果按enter键,将生成结果。你是在做复制和粘贴,因为我认为扫描仪不会处理复制和粘贴。请参见此处:@Garik换行符被视为空白。如果一行中有多个输入,该怎么办?@Garik由for loop处理。这确实有效,尽管我还不了解全部要点,但我现在将对此进行探讨。再想想你。
System.out.print("print numbers here:");
int[] arr = new int[4];
Scanner in = new Scanner(System.in);
for (int i = 0; i < arr.length; i++){
int num;
try {
num = Integer.parseInt(in.next()); // get input
} catch (NumberFormatException e) {
// invalid number
}
arr[i] = num;
}
for (int i = arr.length; i > 0; i--) {
double s = Math.sqrt(arr[i-1]);
System.out.println(s);
} // this is printing the square roots in reverse order, you may want to change
// that to avoid confusion