String.split()*不*正则expression式?
由于String.split()适用于正则expression式,所以这段代码如下: 
 String s = "str?str?argh"; s.split("r?"); 
 收益率: [, s, t, , ?, s, t, , ?, a, , g, h] 
 什么是最优雅的方式来拆分这个string的r? 序列,使它产生[st, st, argh] ? 
  编辑 :我知道我可以逃避问题?  。 麻烦的是我不知道分隔符,我不想写一个escapeGenericRegex()函数。 
一个只使用Java SE API的通用解决scheme是:
 String separator = ... s.split(Pattern.quote(separator)); 
您可以使用
 StringUtils.split("?r") 
来自commons-lang 。
 逃离?  : 
 s.split("r\\?"); 
 String[] strs = str.split(Pattern.quote("r?")); 
这也是完美的:
 public static List<String> splitNonRegex(String input, String delim) { List<String> l = new ArrayList<String>(); int offset = 0; while (true) { int index = input.indexOf(delim, offset); if (index == -1) { l.add(input.substring(offset)); return l; } else { l.add(input.substring(offset, index)); offset = (index + delim.length()); } } } 
使用番石榴分stream器 。
尝试
 String s = "str?str?argh"; s.split("r\?");