java 找子字符串
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);
}
}