尝试
rows = tabDelimitedTable.split('[' + newLine + ']');
这应该解决 问题。
也不重要,但是返回类型
System.getProperty('line.separator')
是 因此无需调用toString()。
解决方法我有一个制表符分隔的字符串(代表一个表),该字符串传递给我的方法。当我将其打印到命令行时,它看起来像是带有行的表:
http://i.stack.imgur.com/2fAyq.gif
命令窗口已正确缓冲。我的想法是,在每行之前或之后肯定有换行符。
我的问题是我想将传入的字符串分成代表表行的单个字符串。到目前为止,我有:
private static final String newLine = System.getProperty('line.separator').toString();private static final String tab = 't';private static String[] rows;...rows = tabDelimitedTable.split(newLine); //problem is hereSystem.out.println();System.out.println('################### start debug ####################');System.out.println((tabDelimitedTable.contains(newLine)) ? 'True' : 'False');System.out.println('#################### end debug###################');System.out.println();
输出:
################### start debug ####################False#################### end debug###################
显然,字符串中有一些内容告诉操作系统开始新的一行。但是,它显然不包含换行符。
在Windows XP SP3上运行最新的JDK。
有任何想法吗?