题目描述
L老师通过调查发现班级里好几个学生每天玩手机到凌晨,严重影响身体健康和学习,L老师是一个非常负责任的班主任,他决定每天晚上12点去宿舍检查学生的睡觉情况,每次检查学生都按时“睡着了”,但是有些学生每天课上精神萎靡,明显没有休息好,后来L老师发现有些学生在“装睡”。通过咨询医生可以通过一个人的呼吸频率和脉搏,确定谁在装睡!正常人睡眠时的呼吸频率是每分钟15-20次,脉搏是每分钟50-70次。L老师想设计一个测睡仪,测试学生的呼吸频率和脉搏,如果这两项指标有一项不在正常范围内,那证明他在装睡。
输入
输入在第一行给出一个正整数N(≤10)。随后N行,每行给出一个人的名字(仅由英文字母组成的、长度不超过3个字符的串)、其呼吸频率和脉搏(均为不超过100的正整数)。
输出
按照输入顺序检查每个人,如果其至少一项指标不在正常范围内,则输出其名字,每个名字占一行。
样例输入
4 Amy 15 70 Tom 14 60 Joe 18 50 Zoe 21 71
样例输出
Tom Zoe
源代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
int n = cin.nextInt();
String a[][]=new String[n][3];
for(int i=0;i<n;i++){
for(int j=0;j<3;j++){
a[i][j]=cin.next();
}
}
cin.close();
for(int i=0;i<n;i++){
int t1=Integer.parseInt(String.valueOf(a[i][1]));
//String数组转String,然后再将String转整
int t2=Integer.parseInt(String.valueOf(a[i][2]));
if((t1<15||t1>20)||(t2<50&&t2>70))
System.out.println(a[i][0]);
}
}
}
注:
String.valueOf()方法的使用:由基本数据型态转换成 String
String 类别中已经提供了将基本数据型态转换成 String 的 static 方法
也就是 String.valueOf() 这个参数多载的方法
有下列几种
String.valueOf(boolean b) : 将 boolean 变量 b 转换成字符串
String.valueOf(char c) : 将 char 变量 c 转换成字符串
String.valueOf(char[] data) : 将 char 数组 data 转换成字符串
String.valueOf(char[] data, int offset, int count) :
将 char 数组 data 中 由 data[offset] 开始取 count 个元素 转换成字符串
String.valueOf(double d) : 将 double 变量 d 转换成字符串
String.valueOf(float f) : 将 float 变量 f 转换成字符串
String.valueOf(int i) : 将 int 变量 i 转换成字符串
String.valueOf(long l) : 将 long 变量 l 转换成字符串
String.valueOf(Object obj) : 将 obj 对象转换成 字符串, 等于 obj.toString()
用法如:
int i = 10;
String str = String.valueOf(i);ParseInt()方法的使用:基本用法(只接受一个参数,可以当做第二个参数默认是10):parseInt的返回值只有两种可能,不是一个十进制整数,就是NaN。
a.将字符串转为整数。parseInt('123') // 123
b.如果字符串头部有空格,空格会被自动去除。parseInt(' 81') // 81
c.如果parseInt的参数不是字符串,则会先转为字符串再转换。这个很重要
d.字符串转为整数的时候,是一个个字符依次转换,如果遇到不能转为数字的字符,就不再进行下去,返回已经转好的部分。
e.如果字符串的第一个字符不能转化为数字(后面跟着数字的正负号除外),返回NaN。
f.如果字符串以0x或0X开头,parseInt会将其按照十六进制数解析。parseInt('0x10') // 16
g.如果字符串以0开头,将其按照10进制解析。parseInt('011') // 11
h.如果参数以0开头,但不是字符串,则会先将数值转成字符串,然后解析,见规则c parseInt(011) // 9
i.对于那些会自动转为科学计数法的数字,parseInt会将科学计数法的表示方法视为字符串,因此导致一些奇怪的结果。
parseInt(1000000000000000000000.5) // 1
// 等同于
parseInt('1e+21') // 1parseInt(0.0000008) // 8
// 等同于
parseInt('8e-7') // 8