拆分字符串并转换为int

时间:2015-12-02 17:06:42

标签: android datetime split

我正在尝试使用以下代码将String时间转换为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) + 45中获得return Integer.valueOf(altSplitTime[0]) * 60 + Integer.valueOf(altSplitTime[1]);。我怎么能这样做?

4 个答案:

答案 0 :(得分:2)

因为你有两次出现":"在' time'中,您需要将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()以删除空格,只是为了安全起见。

答案 1 :(得分:1)

你为什么不完全拆分它? time.split(":",2);代替time.split(":",3);

这应该为您提供示例['Time In', '8', '45']的数组中的三个值。

然后你可以解析为8和45来进行计算。

答案 2 :(得分: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

答案 3 :(得分: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;
}
}