- public static void IO2String() {
- //创建一个缓冲读取流
- BufferedReader br = null;
- //创建一个接收键盘输入数据的字符串变量
- String str = null;
- //创建一个接收最终要输出的结果的字符串类型的数组集合
- List<String> as = new ArrayList<String>();
- //创建从键盘接收数据的IO流对象
- try {
- System.out.println("请输入数据:");
- br = new BufferedReader(new InputStreamReader(System.in));
- //循环读取键盘录入数据
- while((str = br.readLine()) != null) {
- //如果读取到的录入数据是“exit”,就结束方法
- if(str.equalsIgnoreCase("exit")) {
- System.out.println("程序结束!!!!!");
- break;
- }
- as = getLetterCount(str);
- //利用集合的toArray方法,将集合转换成数组
- String[] s = as.toArray(new String[as.size()]);//这个地方有疑问!!!!!
- System.out.println("字母出现次数如下:");
- for (int i = 0; i < s.length; i++) {
- System.out.print(s[i] + " ");
- }
- // System.out.println(as);
- System.out.println();
- System.out.println();
- System.out.println("请输入数据:");
- }
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- System.out.println(e.toString());
- }
- }
复制代码
其中的toArray()方法有两个,一个加参数的,一个不加参数的。
加参数的要求参数是运行时的数据类型,这一点很不明白,我创建的集合是String类型的,运行时也应该是String类型的,为什么还要new一个新的String类型的数组作为参数传入。
不加参数的返回的是Object[]数组,为什么不能强转成String[]数组 |