解决方案 »

  1.   

    文件中的换行是\r\n
    \r和\n的输出效果都是换行
    1.qwe\r,qqwwee\r,rrrtt\r
    2.qwe\n,qqwwwe\n,rrrtt\n
    3.qwe\r\nqqwwee\r\nrrrtt\r\n
    4.qwe,qqwwee,rrrrtt
    5.用\n\r就是不分割,把全部串当成一个串
      

  2.   

    不是很明白,我想知道问题1-5中的输入到ArrayList的每一个元素中的空格和换行如何产生的。
      

  3.   

    元素中的空格就是文件中的空格,换行是\r或\n或\r\n产生的
      

  4.   


    元素中的空格就是文件中的空格,换行是\r或\n或\r\n产生的兄台可以自己试试代码。空格绝不是文件中原有的
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.util.ArrayList;
    import java.util.Properties;
    import java.util.Scanner;
    /**此题使判本流中的回车概念的精确了解
     * 于5月11日写完
     *\040表示空格*/
    public class Execrise9_17 {
    public static void main(String[] args) throws FileNotFoundException{
    File f=new File("9_17.txt");
    //System.out.println(f.exists());
    //System.out.print("\nss");

    Scanner input =new Scanner(f);
    System.out.print("\040nihao");
    System.out.println("char "+countAllChar(f));
    System.out.println("word "+countAllWord(f));
    System.out.println("rows "+countRows(f));
    }

    public static int countRows(File f) throws FileNotFoundException {
    Scanner input =new Scanner(f);
    Properties pp = System.getProperties();
    //String newLine = pp.getProperty("line.separator");
    //input.useDelimiter(newLine);
                     input.useDelimiter("\n");
                     /**将这里的\n换成\r \n\r \r\n [\n|\r]即可知道我提问的东西*/
    ArrayList<String> arr=new ArrayList<String>();

    while(input.hasNext()){

    arr.add(input.next());
    }
    System.out.println("在控制台打印arr:");
    System.out.println(arr);
    return arr.size();
    }
    private static String usenr(File f) throws FileNotFoundException{
    Scanner input =new Scanner(f);

    input.useDelimiter("[\n\r]");
    ArrayList<String> arr=new ArrayList<String>();
    StringBuilder sb=new StringBuilder();
    while(input.hasNext()){
    sb.append(input.next());
    //arr.add(input.next());
    }
    System.out.println(sb);
    return sb.toString();
    }
    public static int countAllChar(File f) throws FileNotFoundException{
    return usenr(f).length();
    }

    public static int countAllWord(File f) throws FileNotFoundException {
    int count=0;
    Scanner input =new Scanner(f);

    input.useDelimiter("[\n||\r]");
    ArrayList<String> arr=new ArrayList<String>();
    StringBuilder sb=new StringBuilder();
    while(input.hasNext()){
    arr.add(input.next());
    }
    System.out.println("利用n||r");
    System.out.println(arr);
    for(int i=0;i<arr.size();i++){
    String[] s=arr.get(i).toString().split(" ");
    count+=s.length;
    }
    return count;



    }


    }
      

  5.   

    你说的空格是什么空格?
    q w e
    不是qwe间的?
      

  6.   

    难道是逗号后面的空格?是ArrayList的toString加上的
      

  7.   


        public String toString() {
            Iterator<E> it = iterator();
            if (! it.hasNext())
                return "[]";        StringBuilder sb = new StringBuilder();
            sb.append('[');
            for (;;) {
                E e = it.next();
                sb.append(e == this ? "(this Collection)" : e);
                if (! it.hasNext())
                    return sb.append(']').toString();
                sb.append(',').append(' ');
            }
        }
      

  8.   

    \r 表示的是返回本行首列,\n是换行符,两个是不同的。
    \r\n代表着回车,其实回车是两个动作的组合,就是返回首字符然后换行。
    目前而言,\n直接换行,下一行在没有字符的情况下默认回到首字符,因此很多情况\n直接来替代回车操作。
    不过在一些古老的编辑器中,换行并不代表回车,也不会回到行首,而是在下一行当前列,有的会用制表符补全,有的会用空格补全。
      

  9.   

    嗯,我说的就是逗号后面的空格这段代码是java源代码中的吗?
    困扰我的空格原来是在这里产生的,谢谢,我结帖了。
      

  10.   

    谢谢,我这个理解过了,waynexuan已经帮我解决问题了。
      

  11.   

    java.util.AbstractCollection.toString()