要是你想在 Java 中达成字符串重复的效果,可以借助以下几种办法:
1、利用循环:
java
String result = "";
for (int i = 0; i < 4; i++) {
result += "FF";
}
// 结果为 "FFFF"
2、使用StringBuilder
:
java
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 4; i++) {
sb.append("FF");
}
String result = sb.toString();
// 结果为 "FFFF"
3、采用 Java 11 引入的String.repeat
方法:
java
String result = "FF".repeat(4);
// 结果为 "FFFF"
4、用例示范
java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StringMultiplier {
// 匹配 "字符串"*数字 格式的正则表达式
private static final Pattern MULTIPLY_PATTERN = Pattern.compile("\"([^\"]*)\"\\s*\\*\\s*(\\d+)");
/**
* 处理包含多个字符串重复表达式的输入
* 例如: "FF"*4 + "0"*2 会被处理为 FFFF00
* @param input 包含字符串重复表达式的输入
* @return 处理后的字符串
*/
public static String processMultipliers(String input) {
if (input == null || input.isEmpty()) {
return "";
}
String result = input;
Matcher matcher = MULTIPLY_PATTERN.matcher(result);
// 循环处理所有匹配到的字符串重复表达式
while (matcher.find()) {
String str = matcher.group(1); // 捕获引号内的字符串
int times = Integer.parseInt(matcher.group(2)); // 捕获重复次数
// 构建重复后的字符串
String repeated = str.repeat(times);
// 使用Pattern.quote和Matcher.quoteReplacement处理特殊字符
String original = Matcher.quoteReplacement(matcher.group(0));
result = result.replaceFirst(Pattern.quote(original), Matcher.quoteReplacement(repeated));
// 更新Matcher以匹配替换后的字符串
matcher = MULTIPLY_PATTERN.matcher(result);
}
return result;
}
public static void main(String[] args) {
// 示例1: 处理单个表达式
System.out.println(processMultipliers("\"FF\"*4")); // 输出: FFFF
// 示例2: 处理多个表达式和其他文本
System.out.println(processMultipliers("A=\"FF\"*4 + \"0\"*2")); // 输出: A=FFFF00
// 示例3: 处理包含特殊字符的字符串
System.out.println(processMultipliers("\"*.*\"*3")); // 输出: *.**.**.*
}
}