java 换行符问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 换行符问题相关的知识,希望对你有一定的参考价值。
JTextarea text ; //这里面是一段文本
String temp = text.getText(); 我怎么判断temp 里有没有换行。
我想用这个方法 char[] temp1 = temp.toCharArray();
一个一个判断(实际程序也需要我一个一个判断),但 temp1里好像没有换行符
if(temp.charAt(i)=='\n')
System.out.println("这是一个换行符");
就这样就可以了额!
如果你是将将文本写到文件中的话不需要这样的 直接
BufferedWriter fw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("D:\\text.txt")));
text.write(fw);
fw.close();本回答被提问者采纳 参考技术B Windows下面换行的话,是\r\n
Linux 或者是正常情况下是\n
Windows 下同样也支持 \n 有时候也会被单独的写成 \r ( 错误写法)
来自:http://www.cnblogs.com/jacktu/archive/2008/06/12/1218400.html
换行符‘\n’和回车符‘\r’
顾名思义,换行符就是另起一行,回车符就是回到一行的开头,所以我们平时编写文件的回车符应该确切来说叫做回车换行符
'\n' 10 换行(newline)
'\r' 13 回车(return)
也可以表示为'\x0a'和'\x0d'.(16进制)
在windows系统下,回车换行符号是"\r\n".但是在Linux等系统下是没有"\r"符号的。
在解析文本或其他格式的文件内容时,常常要碰到判定回车换行的地方,这个时候就要注意既要判定"\r\n"又要判定"\n"。
写程序时可能得到一行,将其进行trim掉'\r',这样能得到你所需要的string了。 参考技术C 1、判断有没有换行用正则表达式判断比较好。
提供个思路
1、换行在不同介质上换行有的不一样,有\n,\r,\r\n等不同版本。
2、通过程序测试输入一个换行再通过程序输出ascii的方式可以很容易判断出来JTextArea中换行的标识符。
3、最后正则查找操作就可以了。
试下看吧。 参考技术D Pattern p=Pattern.compile("\\n");
temp.matches(p); 第5个回答 2013-06-30 加个stringbuffer 然后用readline方法试试
Java:StringBuilder append 换行问题
在进行IO操作时,有如下几行代码:
while ((line = bufferedReader.readLine())!=null){
if (line.length() != 0){
stringBuilder.append(line+" ");
}
}
此处的换行符" "失效,将其替换为" "也不行,最后替换成JDK自带的跨平台的行分隔符,程序改写如下:
stringBuilder.append(line+System.getProperty(line.separator));
问题解决。
另外补充一下," "中, 是回车(return?),回到行首, 是换行(next?),将光标移动到下一行的同个横坐标的位置。
印象中键盘上enter就叫回车,可以换行,Java的程序语言中却不是这样。
在linux中 包含回车,windows中则不,缺少控制符或者顺序不对都将失效,当然失效的原因也不止这两个。
同时也存在行分隔符失效的情况,这时可以替换回那两种换行符试试。原因可能是代码所在项目部署的服务器和用户使用的系统存在差异,
比如说项目常常部署在linux上,而大多数用户都是用的windows。"System.getProperty(line.separator)"作为跨平台分隔符,
自动取得的是linux下的换行符 ,在windows下就会失效。这时需要将跨平台分隔符改为 ,也就是说,要和用户使用的系统一致。
以上是关于java 换行符问题的主要内容,如果未能解决你的问题,请参考以下文章