这里以Scanner类中的useDelimiter(pattern :String) 【返回值:该Scanner对象】为例
File 文件为.txt:
q w e
qq ww ee
rrr rrr
ttt
Scanner input=new Scanner(File);
if(input.useDelimiter("\n"))
ArrayList<String> arr=new ArrayList<String>();
while(input.hasNext()){
arr.add(input.next());
}
第一种利用\n:
在控制台上打印arr:
结果为:
[q w e
, qq ww ee
, rrr rrr
ttt]
问题1:为什么以\n作为分隔符得到效果为
第n行\r,(一个空格)第n+1行
第二种利用\r 仅useDelimiter()处改变,下不赘述
在控制台打印arr:
[q w e,
qq ww ee,
rrr rrr
ttt]
问题2:为什么以\r作为分隔符得到效果为
第n行,(一个空格)\r第n+1行
第三种利用\n\r:
在控制台打印arr:
[q w e
qq ww ee
rrr rrr
ttt]
问题3:为什么以\n\r作为分隔符得到效果为
第n行\r第n+1行
第四种利用\r\n:
在控制台打印arr:
[q w e, qq ww ee, rrr rrr
ttt]
问题4:为什么以\r\n作为分隔符得到效果为
第n行,(一个空格)第n+1行
第五种利用[\n\r]或[\r\n]
在控制台打印arr:
[q w e, , qq ww ee, , rrr rrr ttt]
问题5:为什么以【\n\r】作为分隔符得到效果为
第n行,(一个空格),(一个空格)第n+1行
我也知道windows系统下按下回车,生成\r\n两个字符,但是如果是生成\r\n无法解释上面的问题,
感觉更像\r\n#的形式【注:#代表一个字符】但是关于\n\r作为分隔符时也无法解释问题。
这是这道题的难点。