java字符串的奇怪行为

时间:2012-01-12 13:03:50

标签: java

我有两个字符串变量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

可能导致这些症状的原因是什么?有没有办法让两行打印在一行?

2 个答案:

答案 0 :(得分:7)

这可能更适合作为评论,但后来我无法编写我需要编写的代码片段。

字符串来自哪里?它们来自可能包含一些奇怪控制字符的文件吗?如果您不是自己创建String,则应检查它们以查找嵌入式垂直回车或其他奇怪现象。对detailticker字符串执行类似的操作:

for (int i=0; i<detail.length(); ++i)
    System.out.println((int) detail.charAt(i));

并查看是否在非ASCII范围内获得任何内容。

答案 1 :(得分:2)

可能是第一个以“\ n”结尾的字符串,换行符(换行符)('\ u000A')

相关问题