习题1.2.15
文件输入。基于 String 的 split() 方法实现 In 中的静态方法readInts() 。
要点分析
1. split
split() 方法根据匹配给定的正则表达式来拆分字符串,这里给出几个常用的方法[1] :
public class Test { public static void main(String args[]) { String str = new String("A-B-c-D"); String[] s = str.split("-"); System.out.println("- 分隔符返回值 :" ); for (int i = 0; i < s.length; i++) { System.out.println(s[i]); } System.out.println(); String[] s2 = str.split("-",2); System.out.println("- 分隔符设置分割份数返回值 :" ); for (int i = 0; i < s2.length; i++) { System.out.println(s2[i]); } System.out.println(); String str2 = new String("A.B.c.D"); // String[] s3 = str2.split("\\."); String[] s3 = str2.split("[.]"); //和上面的两种方法都可以 System.out.println("转义字符返回值 :" ); for (int i = 0; i < s3.length; i++) { System.out.println(s3[i]); } System.out.println(); String str3 = new String("A-B C.D"); String[] s4= str3.split("\\.|-|\\s");// \\s表示 空格,回车,换行等空白符 System.out.println("多个分隔符返回值 :" ); for (int i = 0; i < s4.length; i++) { System.out.println(s4[i]); } } } 输出: - 分隔符返回值 : A B c D - 分隔符设置分割份数返回值 : A B-c-D 转义字符返回值 : A B c D 多个分隔符返回值 : A B C D
2. readInts()
In中的readInts()方法在课本的第51页,该方法用于读取一个int类型的值。本题对应课本的第50页。
官方答案
public static int[] readInts(String name) { In in = new In(name); //从文件或者网站中创建输入流 String input = in.readAll();//5读取并返回此输入流的其余部分存入字符串中。 //利用正则表达式拆分字符串,并存入words数组中 String[] words = input.split("\\s+"); \\s表示 空格,回车,换行等空白符,+号表示一个或多个的意思 int[] ints = new int[words.length]; for (int i = 0; i < words.length; i++) ints[i] = Integer.parseInt(words[i]); //将拆分的字符串转换为数字并存入数组 return ints; }
请登录之后再进行评论