Android Studio(Java):如何为整数插入空格生成指定格式内容
解决整数格式化并插入空格的问题
你当前的代码仅将整数格式化为8位带前导零的字符串,但没实现每两位插入空格的需求。可以按以下步骤修改:
先把整数转成8位零填充字符串:
去掉原代码中String.format("%08d ", id)后面的空格,先得到纯8位数字串:String paddedId = String.format("%08d", id); // 得到 "00001234"给8位字符串每两位插入空格:
用正则表达式分割字符串并添加空格,避免末尾多一个空格:String formattedId = paddedId.replaceAll("(.{2})(?=.)", "$1 "); // 得到 "00 00 12 34"这里的正则
(.{2})(?=.)表示匹配每两位字符,且仅当后面还有字符时才添加空格,确保最后两位不会多出空格。拼接最终二维码内容:
直接将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
相关产品推荐
相关产品推荐

