首页 > 解决方案 > 如果字符串内部有数字,则将数字平方并作为字符串返回。我如何用平方数Java替换旧数字

问题描述

所以它应该这样工作

"a44b" 上的 squareDigits("a22b")

"a81b4" 上的 squareDigits("a9b2")

到目前为止我得到了什么:

public class Code {
    public static void main(String[] args) {
        String ok = "a2b9";
        System.out.println(squareDigits(ok)); // "a81b4"
    }

  public static String squareDigits(String s) {
        char[] pena = s.toCharArray();
        int aboba;
        for (char c : pena) {
            if (Character.isDigit(c)) {
                String s1 = Character.toString(c);
                int b = Integer.parseInt(s1);
                aboba = b * b;
                System.out.println(aboba);
            }
        }
        return "";
        }
    }

我只是初学者,这对我很有帮助

标签: javastringreplacedigits

解决方案


您可以StringBuffer对 char 数组进行迭代并检查 char 是否为数字,然后将其平方并放入字符串缓冲区,如果不是,则将其按原样放入字符串缓冲区中。

     public static void main(String[] args) {
        System.out.println(squareDigits("a22b"));
        System.out.println(squareDigits("a9b2"));
    }

    public static String squareDigits(String s) {
        char[] pena = s.toCharArray();
        StringBuffer sb = new StringBuffer();
        for (char c : pena) {
            if (Character.isDigit(c)) {
                String s1 = Character.toString(c);
                int b = Integer.parseInt(s1);
                sb.append(b * b);
            } else {
                sb.append(c);
            }
        }
        return sb.toString();
    }

推荐阅读