You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio(Java):如何为整数插入空格生成指定格式内容

解决整数格式化并插入空格的问题

你当前的代码仅将整数格式化为8位带前导零的字符串,但没实现每两位插入空格的需求。可以按以下步骤修改:

  1. 先把整数转成8位零填充字符串:
    去掉原代码中String.format("%08d ", id)后面的空格,先得到纯8位数字串:

    String paddedId = String.format("%08d", id); // 得到 "00001234"
    
  2. 给8位字符串每两位插入空格:
    用正则表达式分割字符串并添加空格,避免末尾多一个空格:

    String formattedId = paddedId.replaceAll("(.{2})(?=.)", "$1 "); // 得到 "00 00 12 34"
    

    这里的正则(.{2})(?=.)表示匹配每两位字符,且仅当后面还有字符时才添加空格,确保最后两位不会多出空格。

  3. 拼接最终二维码内容:
    直接将first和处理后的formattedId拼接即可:

    String qrContent = first + formattedId;
    

修改后的完整点击事件代码如下:

btnGenerate.setOnClickListener(view -> {
    MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
    try {
        String paddedId = String.format("%08d", id);
        String formattedId = paddedId.replaceAll("(.{2})(?=.)", "$1 ");
        String qrContent = first + formattedId;
        
        BitMatrix bitMatrix = multiFormatWriter.encode(qrContent, BarcodeFormat.QR_CODE, 400, 400);
        BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
        Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix);
        qrcodeIv.setImageBitmap(bitmap);
        
        InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        manager.hideSoftInputFromWindow(minNp.getApplicationWindowToken(), 0);
    } catch (WriterException e) {
        e.printStackTrace();
    }
});

这样生成的二维码内容就是你期望的12 00 00 12 34了。

内容的提问来源于stack exchange,提问作者Reborn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 17:13:27