2015-12-02 51 views
-1

我試圖使用下面的代碼將String時間轉換爲int拆分字符串並將其轉換爲int

public static int SplitTime(String time) { 
    try { 
     String[] altSplitTime = time.split(":",2); 
     Log.e("2",altSplitTime[1]); 
     return Integer.valueOf(altSplitTime[0]) * 60 + Integer.valueOf(altSplitTime[1]); 
    } 
    catch (Exception ex) 
    { 
     return 0; 
    } 
} 

String時刻保持Time In : 8:45 採用分體式方法後,我能得到8:45

現在我想要得到(8*60) + 45return Integer.valueOf(altSplitTime[0]) * 60 + Integer.valueOf(altSplitTime[1]);。我怎樣才能做到這一點?

+0

我假設您發佈了它目前無法正常工作,現在有什麼問題?它會返回錯誤的東西嗎?它什麼都不會返回?是否有例外?您可以提供的信息越多,獲得幫助的機會就越大。 – FoamyGuy

+0

我的代碼沒有錯。現在我只想分割'8:45'。 – Hoo

回答

2

因爲你有兩個OCCURENCES「:」在「時間」,你需要將String分爲三個部分:

try { 
    String[] altSplitTime = time.split(":",3); 
    return Integer.valueOf((altSplitTime[1]).trim()) * 60 + Integer.valueOf((altSplitTime[2]).trim()); 
} 
catch (Exception ex) 
{ 
    return 0; 
} 

我加入了trim()去除空白,只是爲了安全起見。

+0

謝謝修剪()。 – Hoo

0
int a = Integer.parseInt(s3); 
int b = Integer.parseInt(s5); 

你的情況:

public static int SplitTime(String time) { 
try { 
    String[] altSplitTime = time.split(":",2); 
    Log.e("2",altSplitTime[1]); 

    int a = Integer.parseInt(altSplitTime[0]); 
    int b = Integer.parseInt(altSplitTime[1]); 
    return a * 60 + b; 
} 
catch (Exception ex) 
{ 
    return 0; 
} 
} 
+0

'altSplitTime [0]'return'Time In' – Hoo

+0

最初在日誌中打印什麼? – johnrao07

+0

正如我的帖子所述..我很抱歉,如果它看起來不清楚你:) – Hoo

1

你爲什麼不徹底分裂了嗎?代替time.split(":",2);將是time.split(":",3);

這應該爲您提供三個數值與您的示例['Time In', '8', '45']

然後,您可以解析爲8和45來進行計算。

1

我會用SimpleDateFormatCalendar

SimpleDateFormat dateFormat = new SimpleDateFormat("H:mm"); 
Date date = dateFormat.parse("8:45"); 
Calendar calendar = Calendar.getInstance(); 
calendar.setTime(date); 

,然後你可以使用Calendar.get()來檢索您的字符串hoursminutes和使用Calendar.set設置新的值,並格式化通過日曆日期憋成String

+0

感謝您的建議 – Hoo