步骤:(对应下面例题)
- 先将字符串a输入:String a=in.nextString();
- 定义一个一维数组b(类型为String)(一维数组的内容为字符串a中的内容):String b [] =a.split(" ");
- 定义一个一维数组c(类型为int):int c []=new int[b.length];
- 利用for循环将一维数组b的字符转为一维数组c中的int:
for(int i=0;i<b.length;i++){
c[i]=Integer.valueof(b[i]);
}
例题:
编写程序,输入未指定个数的整数,判断读入的正数有多少个,读入的负数有多少个,然后计算这些输入值得总和及平均值(不对0计数)。当输入为0时,表明程序结束。将平均值以double型数据显示。
输入格式:
输入在一行中给出一系列整数,其间以空格分隔。当读到0时,表示输入结束,该数字不要处
输出格式:
在第一行中输出正整数的个数; 在第二行中输出负整数的个数; 在第三行中输出这些输入值的总和(不对0计数); 在第四行中输出这些输入值的平均值(double型数据)。
输入样例:
1 2 -1 3 0
输出样例:
3
1
5
1.25
解法:
//统计正数和负数的个数然后计算这些数的平均值
import java.util.Scanner;
public class Main2 {
public static void main(String[] args) {
int e=0,f=0;
double sum=0;
Scanner in=new Scanner(System.in);
String a=in.nextLine();
String [] aa=a.split(" ");
int [] n=new int[aa.length];
if(a.equals("0")) {
return;
}
for(int i=0;i<aa.length;i++) {
n[i]=Integer.valueOf(aa[i]);
}
for(int i=0;i<aa.length;i++) {
if(n[i]>0) {
e++;
}
else if(n[i]<0) {
f++;
}
sum+=n[i];
}
System.out.println(e);
System.out.println(f);
System.out.println((int)sum);
System.out.println(sum/(e+f));
}
}