【问题标题】:Separating a string into substrings, converting them to ints, and assigning them to an instance variable将字符串分离为子字符串,将它们转换为整数,并将它们分配给实例变量
【发布时间】:2014-05-28 21:59:45
【问题描述】:

我有这个程序要求用户以 XX:XX 格式输入时间,其中 X 是一个数字。它接受这个作为字符串。我试图弄清楚如何获取这个字符串,将前 2 位数字分隔成一个子字符串,将它们转换为整数,然后将它们分配给“小时”实例变量。然后对以下 2 位数字执行相同的操作作为“分钟”。但是如何将单个字符串与特定索引值分开。这可能吗?

【问题讨论】:

    标签: java string substring


    【解决方案1】:
    String time = "XX:XX";
    
    int hours = Integer.parseInt(time.substring(0,2));
    int minutes = Integer.parseInt(time.substring(3,5));
    

    【讨论】:

    • int 分钟 = Integer.parseInt(time.substring(3,2));会抛出异常。有关正确参数,请参阅 Noob 的答案。
    【解决方案2】:

    最好的办法是在冒号处用String.split()分隔:

    String myString = "01:45";
    String[] parts = myString.split(":");
    //parts[0] = "01"
    //parts[1] = "45"
    

    然后您可以单独访问这些部分:

    int part1 = Integer.parseInt(parts[0]);
    int part2 = Integer.parseInt(parts[1]);
    //part1 = 1
    //part2 = 45
    

    【讨论】:

    • 这种方法效果最好,因为它不依赖于恰好有 2 位数字的小时值。
    【解决方案3】:

    是的,这可以做到。首先你获取小时和分钟的子字符串,然后使用 parseInt 将字符串转换为整数。

        String time = "12:30";
        String hour = time.substring (0, 2);
        String minute = time.substring (3, 5);
    
        int hourNum = Integer.parseInt(hour);
        int minNum = Integer.parseInt(minute);
    
        System.out.print (hourNum + ":" + minNum);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-21
      • 1970-01-01
      • 2015-01-29
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多