我希望InputStream
会忽略某些字符。例如,对于给定的String:
CH $ $罗恩$ OSY $ nclast $ ic_in $ fundibu LUM
我希望我的InputStream
忽略所有$
字符,因此会将其读作:
chronosynclastic_infundibulum
到目前为止,我发现的唯一选择是在JScience库中实现ReplaceInputStream
。
还有其他(更快/更常见)选项吗?
答案 0 :(得分:1)
我更喜欢旧的方式:
StringBuilder sb = new StringBuilder();
int i;
while ((i = is.read()) != -1) {
char c = (char) i;
if (c != '$')
sb.append(c);
}
InputStream nis = new ByteArrayInputStream(sb.toString().getBytes());
答案 1 :(得分:0)
通过操作字符串读取输入后,可以执行此操作。使用public String method replaceAll(String regex, String replacement)
。至于性能,我不确定哪个会更快
使用示例:
String a = "ch$ron$osy$nclast$ic_in$fundibu$lum";
String b = a.replaceAll("[$]", "");
//b = "chronosynclastic_infundibulum"
您可以实现自己的InputStream
删除此类字符,这样您就无法在应用程序级别处理此问题。