为一句话中所有的数字加上指定的单位

别人传给我一句话,里面有数字,但是缺统一的单位,我要加上单位。
例如
输入:油价目前8.6,预计要涨0.4,最终9。
输出:油价目前8.6元/升,预计要涨0.4元/升,最终9元/升。

要写成这样的方法,最好用java写

    /**
     * @param text 缺单位的一句话
     * @param unit 单位
     * @return 加上单位的一句话
     */
    public String addUnit(String text, String unit)

可以考虑用正则,匹配数字再替换


/**
     * @param text 缺单位的一句话
     * @param unit 单位
     * @return 加上单位的一句话
     */
    public String addUnit(String text, String unit) {
        String pattern = "([1-9]\\d*\\.?\\d*)|(0\\.\\d*[1-9])";
        // 创建 Pattern 对象
        Pattern r = Pattern.compile(pattern);
        // 创建 matcher 对象
        Matcher m = r.matcher(text);
        // 匹配到数据
        while (m.find()) {
            String value = m.group(0);
            // 进行替换
            text = text.replace(value, value + unit);
        }
        return text;
    }

import java.util.ArrayList;

public class AddUnit {

    public static void main(String[] args) {
        String text = "油价目前8.6,预计要涨0.4,最终9";
        String unit = "元/升";
        String output = addUnit(text, unit);
        System.out.println(output);
    }

    private static String addUnit(String text, String unit) {
        if (text == null && unit == null) {
            return "";
        }
        ArrayList<Integer> numberFlagList = new ArrayList<>();
        for (int i = 0; i <text.length(); i++) {
            if (Character.isDigit(text.charAt(i))) {
                if (((i + 1) < text.length()) && (!Character.isDigit(text.charAt(i + 1)))
                        && (text.charAt(i + 1) != '.')) {
                    numberFlagList.add(i);
                } else if ((i + 1) >= text.length()) {
                    numberFlagList.add(i);
                }
            }
        }
        StringBuilder str = new StringBuilder(text);
        int index = 0;
        int unitSize = unit.length();
        for (int number : numberFlagList) {
            str.insert(number + index + 1, unit);
            index += unitSize;
        }
        return str.toString();
    }
}

这都不会你一头撞死好了

我看你账号已经注册过5年,这能不会?

原力等级3,遍历法会把?