题目描述
读入两个用“时:分:秒”表示的时间点,计算以秒为单位的时间间隔。
输入
输入有两行,每行是一个用“时:分:秒”表示的时间点。测试数据保证第二个时间点晚于第一个时间点。
输出
输出一个整数,表示时间间隔的秒数。
样例输入
08:00:00
09:00:00
样例输出
3600
先调到java代码再点提交.
import java.util.Scanner;
public class Main {
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
String str1 = in.next(),
str2 = in.next();
String a[] = str1.split(":",3),
b[] = str2.split(":",3);//两个,3都可省略
int h1 = Integer.parseInt(a[0]),
m1 = Integer.parseInt(a[1]),
s1 = Integer.parseInt(a[2]),
h2 = Integer.parseInt(b[0]),
m2 = Integer.parseInt(b[1]),
s2 = Integer.parseInt(b[2]);
System.out.printf("%d",(h2 - h1) * 3600 + (m2 - m1) * 60 + s2 - s1);
}
}
关键是如何读入:
next()读入到空格停止,nextLine()读入到回车停止.因此无法把时间当做数字而把:当做字符读入.
这里采用统一以字符串读入,然后分割调整类型的方式,用到两个函数
.split()
简单说,split在字符串中对指定的字符去除并进行分割,然后返回.
import java.util.*;
public class Main
{
public static void main(String[] args)
{
String str = "l i k e,d";
String a[] = str.split(" ");//去除空格并在空格处进行分割
for(int i = 0;i<a.length;i++)
System.out.println(a[i]);
}
}
/*输出
l
i
k
e,d
*/
可以用|指定多个查找条件
import java.util.*;
public class Main
{
public static void main(String[] args)
{
String str = "l i k e,d";
String a[] = str.split(" |,");//去除空格和逗号,并在空格或逗号处进行分割
for(int i = 0;i<a.length;i++)
System.out.println(a[i]);
}
}
/*输出
l
i
k
e
d
*/
还可以指定分割的分数
import java.util.*;
public class Main
{
public static void main(String[] args)
{
String str = "l i k e,d";
String a[] = str.split(" |,",3);//去除空格或逗号,并在空格或逗号处进行分割,
for(int i = 0;i<a.length;i++) //且分成三份
System.out.println(a[i]);
}
}
/*输出
l
i
k e,d
*/
Integer.parseInt()
将某进制的字符串转换为十进制数返回,默认为十进制
import java.util.*;
public class Main
{
public static void main(String[] args) {
int num = Integer.parseInt("11",2);//3
System.out.println(num);
}
}