当前位置: 代码迷 >> J2SE >> 关于replaceFirst的有关问题
  详细解决方案

关于replaceFirst的有关问题

热度:111   发布时间:2016-04-23 20:24:15.0
关于replaceFirst的问题
这段程序看了好久,小白拜托各位大神指出错误

其实就是字符串替换,刚开始第一行输入要被替换字符串的个数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调试吧,看着头晕
------解决方案--------------------
这个调试看看吧。