如何读取字符串(如下所示)并用新文本替换`%rackname`或`%sysname`
KW Actual `%rackname` -> KW Actual THE RACK NAME
KW Difference `%rackname`-> KW Actual THE RACK NAME
KW Predicted `%rackname` -> KW Actual THE RACK NAME
Loads Capacity `%sysname` -> Loads Capacity SYS NAME
Loads Cost Difference `%sysname` -> Loads Cost Difference SYS NAME
Loads EEPR `%sysname` -> Loads EEPR SYS NAME
我需要将这种格式应用于arraylist中的所有字符串,并且一些字符串将有多个要替换的变量。
为这些列表找到这些可替换字段的最佳方法是什么。
我的第一个想法是使用扫描仪使用next()扫描字符串,如果我找到一个单词以“我读到字符串的末尾”开头,并找出要替换的字段。
List<String []> vars = new ArrayList<String[]>() {};
int numfans, numsg, numcomp, numsys;
String [] newString;
String temp;
Scanner scan;
for(int i = 0; i < numRacks; i++){
// do all racks
for(String s: rackStr){
newString = new String[1];
scan = new Scanner(s);
while(scan.hasNext()){
temp = scan.next();
if(temp.startsWith("`") && temp.endsWith("`")){
System.out.println("Temp: " + temp);
System.out.println("Success");
newString[0] += findVar(temp);
}else {
newString[0] += temp;
}
}
vars.add(newString);
}
我认为如果我必须为我将拥有的多个arraylists中的每个字符串创建一个新的扫描程序,这可能很糟糕。
编辑 - 好吧str.replaceAll();是一个更容易的解决方案/ facepalm
答案 0 :(得分:1)
使用String.replaceAll
替换字符串中的模式,例如:
str = str.replaceAll("`%rackname`", "THE RACK NAME");
str = str.replaceAll("`%sysname`", "SYS NAME");