这段程序看了好久,小白拜托各位大神指出错误
其实就是字符串替换,刚开始第一行输入要被替换字符串的个数n,接下来n行分别输入被替换的字符串和替换字符串,最后一行输入母串
//百度翻译机
import java.util.*;
import java.io.*;
class Baidu {
public static void main(String[] args) {
Init tt = new Init();
int min;//用于记录所有匹配中下标值最小的位置
boolean flag = true;
String str = tt.sequence;
while(flag) {
//System.out.println("Begin : " + str);
flag = false;
min = tt.len + 1;
int temp;
int j = 0;
for(int i = 0;i<tt.len;i ++) {
temp = str.indexOf(tt.data[i][0]);
if(temp < min && temp != -1) {
flag = true;
j = i;
min = temp;
}
}
if(flag) {
str = tt.sequence.replaceFirst(tt.data[j][0],tt.data[j][1]);
System.out.println(str);
}
}
}
}
class Init {
int len;
String[][] data;
String sequence;
Init() {
Scanner in = new Scanner(System.in);
try {
len = Integer.parseInt(in.nextLine());
data = new String[len][2];
//System.out.println(len);
}catch(NumberFormatException e) {
System.out.println("Please input a number!");
}
try{
for (int i = 0;i<len;i ++) {
String ss = in.nextLine();
String[] con = ss.split(" ");
data[i][0] = con[0];
data[i][1] = con[1];
}
}catch(ArrayIndexOutOfBoundsException e) {
System.out.println("You must input Couple-String!");
}
sequence = in.nextLine();
//System.out.println(sequence);
}
}
------解决方案--------------------
debug调试吧,看着头晕
------解决方案--------------------
这个调试看看吧。