2013-12-18 72 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()