Java格式化字符串以使其具有小数位

用户名

我有一个像军事游戏一样的游戏,并且顶部有一个指示时间的栏。(示例)当凌晨4:06时,它说4:6有一种方法可以将其更改为04:06,但是还要说(示例)11:45,而不是011:045。

这是时间课程:

public class Hud {

    public int x, y;
    public int money = 1000;
    public int reputation = 5;
    public int wifi = 3;

    public int time = 0;
    public int timer = 10;
    public int minute = 50;
    public int hour = 10;

    public Hud(int x, int y) {
        this.x = x;
        this.y = y;

    }

    public void tick() {
        if (time >= timer) {
            time = 0;
            minute++;
        } else if (time <= timer) {
            time++;
        }
        if (minute >= 60) {
            minute = 0;
            hour++;
        }
        if (hour >= 24) {
            hour = 0;
        }
    }

    public void render(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;

        RenderingHints rh = new RenderingHints(RenderingHints.KEY_TEXT_ANTIALIASING,       RenderingHints.VALUE_TEXT_ANTIALIAS_GASP);
        g2.setRenderingHints(rh);

        g.setColor(Color.LIGHT_GRAY);
        g.fillRect(x, y, Comp.size.width + 9, 20);

        g.setColor(Color.DARK_GRAY);
        g.drawRect(x, y, Comp.size.width + 9, 20);

        // money

        g.setColor(Color.yellow);
        g.setFont(new Font("italic", Font.BOLD, 15));
        g.drawString("€ " + money, 10, 17);

        // reputation

        g.setColor(Color.black);
        g.setFont(new Font("italic", Font.BOLD, 15));
        g.drawString("Rep: " + reputation, 100, 16);

        // time

        g.setColor(Color.black);
        g.setFont(new Font("italic", Font.BOLD, 15));
        g.drawString("" + hour + ":" + minute, Comp.size.width / 2 - 20, 16);

    }
}
充满鳗鱼的气垫船

这与字体绝对无关(所以我不确定为什么在问题标题中提到字体),而与数字格式有关。您可以执行以下操作:

String displayString = String.format("%02d:%02d", minutes, seconds);

这是将以分钟和秒为单位的int格式化为两位数的字符串,如果int只有一位数字长,则以“ 0”开头。

"%02d"是格式说明字符串帮助的String.format或java.util.Formatter中知道你是怎么想格式化数字。%通知格式,这是一个格式说明。02表示使其宽2位数,并0在需要时添加a。d表示这是一个十进制数字。

例如,

  g.setColor(Color.black);
  g.setFont(new Font("italic", Font.BOLD, 15));
  String displayString = String.format("%02d:%02d", hour, minute);
  g.drawString(displayString, Comp.size.width / 2 - 20, 16);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何格式化具有不同小数位的数字以使其前导零

格式化f字符串中的变量,并带有可变的小数位数

格式化总数,使其不显示小数位

如何将双精度型格式化为字符串(只有两个小数位)?

如何格式化字符串数字以使其带有逗号和舍入?

转换后如何将Swift 3 nsmeasurement字符串格式化为最多2个小数位?

格式化字符列中的小数位。as.numeric 擦除列中的值

格式化可变的小数位数

用小数位格式化数字

如何根据值格式化小数位?

格式化R中的小数位数

格式化数字未知的小数位

用R格式化小数位

如何用Java格式化数字并保留小数位数?

在 BigDecimal 中设置 n 个小数位并格式化数字 Java

将字符串转换为十进制以始终具有2个小数位

Javascript如何将十进制数转换为具有特定小数位数的字符串

如何在VBA中对具有多个小数位的数字字符串进行排序

Python:在同一行中打印具有首选小数位数的字符串和数字

具有%的Python字符串格式化程序

任意精度的字符串格式双精度,固定小数位

在Swift中删除尾随零的格式字符串以保留x个小数位

字符串处理:在C#中格式化字符串以使其后三位是数字

如果小数位为.00,则需要忽略字符串中的小数位

使用字符串格式格式化小数

格式化Java字符串

如何格式化浮点数,最多“n”个小数位而没有尾随零

如何用可变的小数位数在python中格式化小数

格式化网格中的字符串和文本以使其在C中显得连贯