从字符串的小时分钟变为秒

时间:2013-05-20 08:59:51

标签: java android string substring

现在,我有一个字符串String time =“200hour 0minute 0second” 我想跟踪字符串中的数字并转换为秒..如上面的字符串..我想获得值200 * 3600 .. 我的代码:

    //change from hour minute to second
public String changeSecond(String time)
{
    String result;
    int ind_hour=time.indexOf("hour");
    int ind_minute=time.indexOf("minute");
    int ind_second=time.indexOf("second");

    int hour=Integer.parseInt(time.substring(0, ind_hour));
    int minute=Integer.parseInt(time.substring(ind_hour+1, ind_minute));;
    int second=Integer.parseInt(time.substring(ind_minute+1, ind_second));

    result=String.valueOf(hour*3600+minute*60+second);

    return result;
}

但是当我运行changeSecond(时间)时。它不起作用。我该怎么做。

7 个答案:

答案 0 :(得分:1)

public String changeSecond(String time)
{
    String result;
int ind_hour=time.indexOf("hour");
int ind_minute=time.indexOf("minute");
int ind_second=time.indexOf("second");

int hour=Integer.parseInt(time.substring(0, ind_hour));
int minute=Integer.parseInt(time.substring(ind_hour+6, ind_minute));; // value 6 is length of minute 
int second=Integer.parseInt(time.substring(ind_minute+6, ind_second));

  int totalsec=((hour*60*60)+(minute*60)+second);
   result=String.valueOf(totalsec);

return result;

}

答案 1 :(得分:0)

它不是这样做的方法。但它会起作用。试试这个,

String hour="200hour 0minute 0second";

     String[] secondarray=hour.split("hour");

     String second=secondarray[0]; //here "second" will have the value 200

答案 2 :(得分:0)

您可以将标签分为3个部分:一个包含小时数,另一个包含分钟数,最后一个包含秒数。

public static String changeSecond(String time)
    {
        String tab[] = time.split(" ");
        String result = "";
        int ind_hour=tab[0].indexOf("hour");
        int ind_minute=tab[1].indexOf("minute");
        int ind_second=tab[2].indexOf("second");

        int hour=Integer.parseInt(tab[0].substring(0, ind_hour));
        int minute=Integer.parseInt(tab[1].substring(0, ind_minute));
        int second=Integer.parseInt(tab[2].substring(0, ind_second));

        result=String.valueOf(hour*3600+minute*60+second);

        return result;
    }

答案 3 :(得分:0)

您应该对以下行进行更改:

int hour=Integer.parseInt(time.substring(0, ind_hour));
int minute=Integer.parseInt(time.substring(ind_hour+5, ind_minute));
int second=Integer.parseInt(time.substring(ind_minute+7, ind_second));

答案 4 :(得分:0)

这是我能想到的最干净的解决方案。只需拆分“”然后删除不相关的文本。

public String changeSecond(final String time)
{
    final String[] times = time.split(" ");
    final int hour = Integer.parseInt(times[0].replace("hour", ""));
    final int minute = Integer.parseInt(times[1].replace("minute", ""));
    final int second = Integer.parseInt(times[2].replace("second", ""));
    return String.valueOf(hour*3600+minute*60+second);
}

答案 5 :(得分:0)

由于字母字符被传递给Integer.parseInt方法,因此初始代码会抛出解析错误。包含字母字符是因为子字符串没有考虑术语小时,分钟和秒的长度。我建议将字符串拆分为整理。

public String changeSecond(String time) {
    String[] tokens = time.split(" ");
    tokens[0] = tokens[0].substring(0, tokens[0].indexOf("hour"));
    tokens[1] = tokens[1].substring(0, tokens[1].indexOf("minute"));
    tokens[2] = tokens[2].substring(0, tokens[2].indexOf("second"));

    return String.valueOf(Integer.parseInt(tokens[0]) * 3600
            + Integer.parseInt(tokens[1]) * 60 + Integer.parseInt(tokens[2]));
}

答案 6 :(得分:0)

将您的小时,分​​钟和秒解析更新为:

        int hour=Integer.parseInt(time.substring(0, ind_hour));
        int minute=Integer.parseInt(time.substring(ind_hour + "hour".length() + 1, ind_minute));
        int second=Integer.parseInt(time.substring(ind_minute + "minute".length() + 1, ind_second));