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(' '); } }
\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就是不分割,把全部串当成一个串
元素中的空格就是文件中的空格,换行是\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;
}
}
q w e
不是qwe间的?
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(' ');
}
}
\r\n代表着回车,其实回车是两个动作的组合,就是返回首字符然后换行。
目前而言,\n直接换行,下一行在没有字符的情况下默认回到首字符,因此很多情况\n直接来替代回车操作。
不过在一些古老的编辑器中,换行并不代表回车,也不会回到行首,而是在下一行当前列,有的会用制表符补全,有的会用空格补全。
困扰我的空格原来是在这里产生的,谢谢,我结帖了。