我有两个字符串变量ticker和detail。我试图在一行中打印出两个字符串。它只是行不通。我尝试过这么多不同的方法。为了排除未初始化字符串的可能性,我尝试用不同的行打印出来......这很有效。
此示例有效...除了输出需要在一行中。
System.out.println(ticker);
System.out.println(detail);
输出是:
IWM
|0#0.0|0#0.0|0#-4252#386|
GLD
|0#0.0|0#0.0|0#-4704#818|
当我尝试以多种方式将输出放入一行时,我只得到了自动收报机...细节字符串只是没有打印...不是控制台或文件。以下是一些产生相同结果的示例代码片段:
尝试1:
System.out.println(ticker.concat(detail));
尝试2:
System.out.println(ticker+detail);
尝试3:
StringBuffer sb = new StringBuffer();
sb.append(ticker);
sb.append(detail);
System.out.print(sb.toString());
尝试4:
System.out.print(ticker);
System.out.println(detail);
在上述所有尝试中,我得到以下输出......好像忽略了细节部分:
GOLD
BBL
SI
可能导致这些症状的原因是什么?有没有办法让两行打印在一行?
答案 0 :(得分:7)
这可能更适合作为评论,但后来我无法编写我需要编写的代码片段。
字符串来自哪里?它们来自可能包含一些奇怪控制字符的文件吗?如果您不是自己创建String,则应检查它们以查找嵌入式垂直回车或其他奇怪现象。对detail
和ticker
字符串执行类似的操作:
for (int i=0; i<detail.length(); ++i)
System.out.println((int) detail.charAt(i));
并查看是否在非ASCII范围内获得任何内容。
答案 1 :(得分:2)
可能是第一个以“\ n”结尾的字符串,换行符(换行符)('\ u000A')