Java Android下从字符串提取数字后生成带后置零循环格式的实现方法
Android Java 实现拆分数字并按权值输出的方案
以下是可直接在Android Studio中运行的实现代码:
// 你原有提取纯数字的逻辑 String y = "9.86-A5.321"; String x = y.replaceAll("\\D+",""); // 空值保护 if (x.isEmpty()) { textview.setText("未提取到有效数字"); return; } StringBuilder resultBuilder = new StringBuilder(); // 先追加原始数字 resultBuilder.append(x).append("\n"); int digitLength = x.length(); for (int i = 0; i < digitLength; i++) { // 取出当前位的数字 int currentDigit = Character.getNumericValue(x.charAt(i)); // 计算当前位对应的权值结果,用long避免长数字溢出 long weightedValue = (long) (currentDigit * Math.pow(10, digitLength - i - 1)); resultBuilder.append(weightedValue).append("\n"); } // 去除末尾多余换行后设置到TextView textview.setText(resultBuilder.toString().trim());
逻辑说明
- 复用了你已有的
replaceAll提取纯数字的逻辑,无需调整原有前置流程 - 使用
StringBuilder拼接结果,相比直接字符串拼接性能更好,适合Android UI渲染场景 - 计算权值时用
long类型接收结果,避免数字位数过长时int溢出的问题 - 加入了空值判断,避免提取不到数字时出现崩溃
运行后输出的内容和你要求的格式完全一致。
内容的提问来源于stack exchange,提问作者Dioo B
相关产品推荐
相关产品推荐

