使用 JTextArea的话,麻烦一点可以使用 getLineCount() 获得行数。getLineStartOffset(int line)和getLineEndOffset(int line)获得行首尾位置,然后使用 substring 获得各行内容。
换行在后台的表示为'\n',或者'\r'。
所以你处理字段的时候,当字符为'\n'('\r')的时候,就可以把这些字段截取,放到一个数组里。等等。
或者你可以直接用split直接把字符串分解为数组:
http://blog.csdn.net/daxiang_zhang/article/details/2149896
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author lei
*/
public class StringUtils {
public static String replaceBlank(String str) {
String dest = "";
if (str!=null) {
Pattern p = Pattern.compile("\\s*|\t|\r|\n");
Matcher m = p.matcher(str);
dest = m.replaceAll("");
}
return dest;
}
public static void main(String[] args) {
System.out.println(StringUtils.replaceBlank("just do it!"));
}
/*-----------------------------------
String s = "你要去除的字符串";
1.去除空格:s = s.replace('\\s','');
2.去除回车:s = s.replace('\n','');
这样也可以把空格和回车去掉,其他也可以照这样做。
注:\n 回车(\u000a)
\t 水平制表符(\u0009)
\s 空格(\u0008)
\r 换行(\u000d)*/
}
String str = str.replaceAll("/r/n","
")
然后保存str,输出时就好了
/**
*
* 概述:按照指定编码(如果有参数)将文件读取出来
*
* @Title: readFile
* @param file:文件路径
* @param encode:读取的编码方式
* @return String
*/
public static String readFile(String file, String encode) {
if (file == null || "".equals(file)) {
return file;
}
File f = new File(file);
if (!f.exists() || f.isDirectory())
return "";
BufferedReader br = null;
StringBuffer sb;
try {
if (encode == null || "".equals(encode)) {
br = new BufferedReader(new InputStreamReader(
new FileInputStream(file)));
} else {
br = new BufferedReader(new InputStreamReader(
new FileInputStream(file), encode));
}
String temp = null;
sb = new StringBuffer();
temp = br.readLine();
while (temp != null) {
sb.append(temp + "\n");
temp = br.readLine();
}
br.close();
} catch (Exception e) {
log.error(e);
throw new RuntimeException();
}
return sb.toString();
}
将StringBuffer改为List集合,就OK