String first="#listen_addresses = 'localhost' # what IP address(es) to listen on";
String second= "listen_addresses = '*'";
注:first中间的空白是制表符:
问题:怎么实现将first中的#listen_addresses = 'localhost'(#listen_addresses = 'localhost'可能在first中的任何位置)替换成second的字符串
------解决方案--------------------------------------------------------
(#listen_addresses = 'localhost'可能在first中的任何位置)
这句话是啥意思?
你贴几个可能的位置的例子上来
------解决方案--------------------------------------------------------
你是不是想替换 单引号里边的内容 为 * 呀?
如果是,下面第一行那个符号‘#’是怎么回事 ,下面的第二行第三行都只有一个单引号,这又么回事
first="#listen_addresses = 'localhost' # what IP address(es) to listen on";
first=“h listen_addresses = 'localhost hkafdnfkldahdanfdbjka” n=2
first=“hhk listen_addresses = 'localhost afdnfkldahdanfdbjka” n=4
无论是不是 你把上面三行的 替换后的结果 写出来
------解决方案--------------------------------------------------------
制表符就是"\t"
for example
- Java code
String first="#listen_addresses = 'localhost' # what IP address(es) to listen on";String second= "listen_addresses = '*'";String third = first.replace("#listen_addresses\t=\t'localhost'", second);System.out.println(third);
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
- Java code
public class Test { public static void main(String[] args) { String first="#listen_addresses = 'localhost' # what IP address(es) to listen on"; String second= "listen_addresses = '*'"; String result = first.replace("#listen_addresses = 'localhost'", second); System.out.println(result); //根据我的测试,中间的空白符不是制表符 //但是上面的方法直接些\\s 又不行,所以写下面的方法,应该能满足你了 String regex = "#listen_addresses\\s=\\s'localhost'"; Matcher matcher = Pattern.compile(regex).matcher(first);// result = matcher.replaceAll(second); System.out.println(result); }}