Java 静态内部类调用问题及解决方案
该代码不能运行的原因是因为在定义StringReplacement类的时候,它是一个静态内部类,而在main方法中直接调用StringReplacement.replacePlaceholders()方法是不被允许的。我们可以将StringReplacement类定义为独立的类,或者将replacePlaceholders()方法定义为静态方法,这样就可以直接调用了。修改后的代码如下:
import java.util.*;
public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param str string字符串 原串 * @param arg char字符型一维数组 需替换数组 * @return string字符串 */ public static String replacePlaceholders(String input, String[] params) { int paramIndex = 0; // 参数索引 int placeholderIndex = input.indexOf('%s'); // 占位符索引 StringBuilder result = new StringBuilder();
while (placeholderIndex != -1) {
// 将占位符之前的部分添加到结果字符串中
result.append(input.substring(0, placeholderIndex));
// 将参数添加到结果字符串中
result.append(params[paramIndex]);
// 更新索引和参数
input = input.substring(placeholderIndex + 2);
paramIndex++;
placeholderIndex = input.indexOf('%s');
}
result.append(input);
return result.toString();
}
public static void main(String[] args) {
String input = 'A%sC%sE';
String[] params = { 'B', 'D' };
String result = replacePlaceholders(input, params);
System.out.println(result);
}
} 现在,该代码可以正常运行并输出结果为'ABCDE'。
原文地址: https://www.cveoy.top/t/topic/pbFO 著作权归作者所有。请勿转载和采集!