编写一段程序,从标准输入按行读取数据,其中每行都包含一个名字和两个整数。然后用printf() 打印一张表格,每行的若干列数据包括名字、两个整数和第一个整数除以第二个整数的结果,精确到小数点后三位。可以用这种程序将棒球球手的击球命中率或者学生的考试分数制成表格。
package xixi;
import edu.princeton.cs.algs4.StdOut;import edu.princeton.cs.algs4.StdIn;
public class en {
public static void main(String[] args) {
int M=0;
int i=3;
int j;
String []a=new String[i];
while(M<i)
a[M++]=StdIn.readLine();
for(j=0;j<a.length;j++)
{String[]b=a[j].split("\\s+");
double temp=Double.parseDouble(b[1])/Double.parseDouble(b[2]);
StdOut.printf("%s %s %s %.3f\n",b[0],b[1],b[2],temp);}
}
}
原文借鉴:http://www.bubuko.com/infodetail-660231.html
当中涉及的不理解的知识点:正则表达式、
Double.parseDouble();
split
public String[] split(String regex)根据给定的正则表达式的匹配来拆分此字符串。
然后就要明确正则表达式的含义了:
\\s表示 空格,回车,换行等空白符,
+号表示一个或多个的意思,
原文:https://zhidao.baidu.com/question/79107483.html
更加详细的参见:http://www.cnblogs.com/mingforyou/archive/2013/09/03/3299569.html
正则表达式的符号表:https://baike.baidu.com/item/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1700215?fr=aladdin#7
Double.parseDouble()方法是把数字类型的字符串,转换成double类型
又了解了JAVADoc:http://blog.csdn.net/fanxiaobin577328725/article/details/52658781