-6

对于我的一个项目,我必须将字符串转换为整数。java中如何将"16:45:20"字符串转换为整数。我在用

int time = Integer.parseInt(string)

它给了我NumberFormatException错误。如何解决这个问题

4

7 回答 7

2

你希望它返回什么?时间跨度中的秒数?或者这是 24 小时制的时间?您希望从示例输入字符串中得到什么整数?如果您只想将数字字符作为整数,那么是的,您需要在冒号上拆分字符串,然后将其连接起来,然后解析 int。

于 2012-11-30T04:25:26.813 回答
1

您不能直接转换为整数,因为"16:45:20"它不是有效的整数

您可能需要根据:分隔符进行拆分

然后循环String[]并将每个转换为相应的 int。

您将获得三个独立的整数 16,45,20

String[] tempArr = str.split(":");
int val1 = Integer.valueOf(tempArr[0]);
于 2012-11-30T04:19:29.903 回答
1

如果您需要获取时间,可以使用如下代码:

package stackoverflow.time;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;
public class JavaTime {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.printf("Type the hour and press 'Enter': ");
        String time = s.next();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
        LocalTime localTime = LocalTime.parse(time, formatter);
        System.out.println("The time typed was: " + localTime);
    }
}
于 2019-06-10T20:02:36.237 回答
0

您首先需要用“:”分割字符串,然后附加到字符串

于 2012-11-30T04:20:52.703 回答
0

对于java检查下面的代码你可以像这样转换..

public class ConvertStringToInt {
  public static void main(String[] args) {
    String aString = "78";
    int aInt = Integer.parseInt(aString);

    System.out.println(aInt);
  }
}

另一个例子

import java.io.*;
import java.lang.*;

public class  StringToInt{
  public static void main(String[] args)throws IOException {
  BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
  System.out.println("Enter an integer number: ");
  String str = bf.readLine();
  int i = Integer.parseInt(str);
  System.out.println("String: " + str);
  System.out.println("Integer: " + i);
  }
}

例如这里有两种方式(区别在于返回类型):

Integer x = Integer.valueOf(str);
int y = Integer.parseInt(str);
于 2012-11-30T04:22:01.850 回答
0

您不能直接转换为整数,因为“16:45:20”不是有效的整数

您可能需要拆分。

试试这个方法:

  String str = "16:45:20";

    String[] split = str.split(":");
    System.out.println("Hour :========>"+split[0]);
    System.out.println("Min :========>"+split[1]);
    System.out.println("Sec :========>"+split[2]);

    int hour = Integer.valueOf(split[0]);
    int Min = Integer.valueOf(split[1]);
    int Sec = Integer.valueOf(split[2]);
于 2012-11-30T04:33:07.787 回答
0

-在将其转换为 int 之前,您需要将using作为分隔符进行拆分。String:

例如:

String s = "16:45:20";
String[] arr = s.split(":");

int x = Integer.parseInt(arr[0]);
int y = Integer.parseInt(arr[1]);
int z = Integer.parseInt(arr[2]);
于 2012-11-30T04:41:23.737 回答