您的位置:首页 > 其它

偶然间看到的一些题

2018-03-15 19:57 337 查看
1.一个map中存有类似如下的数据:
  key          value
 
  "a"          "afasfwaeqwfwa(b)eqwgewgrqgq"
 
  "b"          "frgwegqgg(c)fqf(d)dqf"
 
  "c"         "fqfgrfwgrw"
 
  "d"         "gwrgwergqwg"
 
现在写一个函数,将"b"的value中的“(c)”和“(d)”分别用"c”和"d"的value替换,然后将"a"的value中的“(b)”用"b"的value替换。注:上面的map只是一个例子而己,实际情况可能更复杂。
我的代码:
import java.util.HashMap;

import java.util.Map;

public class Main{
private static Map<String, String> map = new HashMap<String, String>();

public static void initMap() {
String a = "asdasdfbsv(b)";
String b = "aadsd(cd)asfwczqw(c)";
String c = "huang";
String d = "tiancheng";
map.put("a", a);
map.put("b", b);
map.put("c", c);
map.put("d", d);
}

public static void mapClean() {
int n = 2;
while (n > 0) {
for (String key : map.keySet()) {
StringBuffer tempstr = new StringBuffer();
boolean point = true;
for (int i = 0; i < map.get(key).length(); i++) {
char t = map.get(key).charAt(i);
if (t == '(') {
point = false;
continue;
}
if (t == ')') {
point = true;
continue;
}
if (point) {
tempstr.append(t);
} else {
tempstr.append(map.get(String.valueOf(t)));
}
}
String str = String.valueOf(tempstr);
map.put(key, str);
}
n--;
}
}

public static void main(String[] args) {
// TODO Auto-generated method stub
Coding.initMap();
Coding.mapClean();
System.out.println(map);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: