如何将 String.split 转换为 int

How do I convert String.split to int

    String nDate;
    String dateTemp;
    int i;

    nDate = kb.nextLine();
    String[] temp = nDate.split("-");
    int numDate = Integer.parseInt(String.valueOf(temp));

我对最后一行中的 (temp) 部分有疑问。例如,如果我的输入是“06-21-2020”,我希望它变成“06212020”

使用 replace() 而不是 split()。为了进一步解释,String.valueOf() 不采用 String 的数组。

String temp = nDate.replace("-","");
int numDate Integer.parseInt(temp);

java.time

可以满足您的特定要求。

但是,我建议您将日期字符串解析为 LocalDate 并根据需要设置格式。

您将获得比所需转换更多的收益,例如想想在 06-21-2020 上找到当天的名称,或者转换为其他格式,例如2020 年 6 月 21 日,星期日。所有这些要求都可以使用内置的 API 轻松完成,如以下演示所示:

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class Main {
    public static void main(String[] args) {
        String nDate = "06-21-2020";

        DateTimeFormatter dtfInput = DateTimeFormatter.ofPattern("MM-dd-uuuu", Locale.ENGLISH);
        LocalDate date = LocalDate.parse(nDate, dtfInput);

        DateTimeFormatter dtfOutput1 = DateTimeFormatter.ofPattern("MMdduuuu", Locale.ENGLISH);
        DateTimeFormatter dtfOutput2 = DateTimeFormatter.ofPattern("dd/MM/uuuu", Locale.ENGLISH);
        DateTimeFormatter dtfOutput3 = DateTimeFormatter.ofPattern("EEE dd MMM uuuu", Locale.ENGLISH);
        System.out.println(dtfOutput1.format(date));
        System.out.println(dtfOutput2.format(date));
        System.out.println(dtfOutput3.format(date));
    }
}

输出:

06212020
21/06/2020
Sun 21 Jun 2020

ONLINE DEMO

Trail: Date Time.

了解有关现代日期时间 API 的更多信息