我正在尝试使用以下代码将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]);
。我怎么能这样做?
答案 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)
我会使用SimpleDateFormat
和Calendar
SimpleDateFormat dateFormat = new SimpleDateFormat("H:mm");
Date date = dateFormat.parse("8:45");
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
然后您可以使用Calendar.get()
从字符串中检索hours
和minutes
,并使用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;
}
}