Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java “如何脱衣”;控制字符“;从一个序列?_Java - Fatal编程技术网

Java “如何脱衣”;控制字符“;从一个序列?

Java “如何脱衣”;控制字符“;从一个序列?,java,Java,我有CharSequence源、int start、int end 我想从源代码中去掉起始和结束之间的所有“控制字符”,并将其作为新的字符序列返回 我所说的“控制字符”是指不可序列化的字符,如制表符和回车符、换行符等等。。。基本上所有这些都是ASCII

我有
CharSequence源、int start、int end

我想从源代码中去掉起始和结束之间的所有“控制字符”,并将其作为新的字符序列返回

我所说的“控制字符”是指不可序列化的字符,如制表符和回车符、换行符等等。。。基本上所有这些都是ASCII<32(空格)。。。但我不知道在这个“现代”怎么做


什么是
字符
?是unicode吗?如何删除这些“控制字符”?

假设您可以将整个源代码放入内存,您可以执行以下操作:

String tmp = source.toString();
String prefix = tmp.substring(0, start-1);
String suffix = tmp.substring(end+1);
String middle = tmp.substring(start, end).replaceAll("\\s", "");
CharSequence res = prefix + middle + suffix;
使用
Character.isISOControl(char)
如果使用最新的Guava库
是,字符是Unicode。

您可以使用和,如下所示:

source.subSequence(0, start).toString() + source.subSequence(start, end).toString().replaceAll("\\p{Cntrl}", "") + source.subSequence(end, source.length()).toString()
使用番石榴:


你检查过这个:使用。这对控制字符有什么作用?@HighlandMark OP调用“控制字符”,通常称为“空白”(我所说的“控制字符”是指不需要的字符,如制表符和回车符、换行符等
replaceAll()
从字符串的开头和结尾删除所有此类字符。感谢您的澄清。将字符序列转换为字符串将删除任何特殊格式(例如粗体字符)。示例不会在最新的guava库中编译。
return CharMatcher.JAVA_ISO_CONTROL.removeFrom(string);