Java Stringbuilder.replace

Ton*_*ony 5 java string stringbuilder

考虑以下输入:

String[] input = {"a9", "aa9", "a9a9", "99a99a"};
Run Code Online (Sandbox Code Playgroud)

使用StringBuilder直接替换9之前的任何数字与字母表后面的下一个字母时,最有效的方法是什么?

处理完这些输入后,输出应为:

String[] output = {"b9", "ab9", "b9b9", "99b99a"}
Run Code Online (Sandbox Code Playgroud)

我一直在摸不着头脑,而StringBuilder.setCharAt是我能想到的最好的方法.

任何建议或意见将不胜感激.

Ern*_*ill 2

由于您必须查看每个字符,因此您的性能永远不会比缓冲区大小的线性表现更好。所以你可以做类似的事情

for (int i=1; buffer.length() ++i) // Note this starts at "1"
    if (buffer.charAt[i] == '9')
        buffer.setCharAt(i-1, buffer.getCharAt(i-1) + 1);
Run Code Online (Sandbox Code Playgroud)