2013-12-18 65 views
2

我试图打印出一个字符串竞赛的最后时间,所以我有一个名为“最快时间”的字符串属性的竞争对象,格式为分钟:秒。秒(即“1 :15.36" )。字符串未能接受

在我的比赛类:

public String getFastestTime() { 
    if(fastestTime != null) 
     return fastestTime; 
    else 
     return "Unknown"; 
} 

在我的主:

System.out.println("The fastest time was " + race.getFastestTime() + " by " + race.getWinner()); 

出于某种原因,在打印出来的只是一部分是一切后, “靠”。整个第一部分正在被删除,我真的不知道为什么。

如果我只做:

System.out.println("The fastest time was " + race.getFastestTime()); 

它打印出罚款。

任何人有任何想法?

更新:

知道了!它看起来像我不得不修剪后的字符串,谢谢大家的帮助,我真的很感激它!

+1

“最快的时间是”没有被打印? –

+0

正确,只有在时间应该到的地方才有。 – user2316901

+1

'race.getFastestTime()'返回的字符串中有哪些字符?任何包含ANSI转义序列的机会? –

回答

6

看起来像race.getWinner()返回字符\r作为其字符串的一部分,因此覆盖所有事先。

尝试使用类似打印前消毒race.getWinner()

race.getWinner().replaceAll("\\r",""); 

或:

race.getWinner().trim(); 
2

有可能是在fastestTime结束回车(\r)。做fastestTime.trim()