Java字符替换

Java字符替换,java,replace,Java,Replace,我在java中替换“…”时遇到问题。这让我快发疯了 java似乎无法通过replace方法识别“…”。我应该试试什么 我试过了 line = line.replace("…", ""); 但它不起作用 尝试此重定向: 这并不完全相关,但这是eclipse中的一个设置,您应该检查它。您可能遇到了Unicode翻译问题。尝试使用“\u2026”而不是文字省略号:和。在ASCII集合之外,您无法始终控制如何在源代码中解释unicode字符。一般来说,对这样的字符使用转义是一个好主意。字符串。

我在java中替换“…”时遇到问题。这让我快发疯了

java似乎无法通过replace方法识别“…”。我应该试试什么

我试过了

    line = line.replace("…", "");
但它不起作用

尝试此重定向:


这并不完全相关,但这是eclipse中的一个设置,您应该检查它。

您可能遇到了Unicode翻译问题。尝试使用“\u2026”而不是文字省略号:和。在ASCII集合之外,您无法始终控制如何在源代码中解释unicode字符。一般来说,对这样的字符使用转义是一个好主意。

字符串。在旧的Java中只替换了char,但现在也可以替换字符串(字面上没有正则表达式模式)

您可能遇到的问题是编码错误。编辑器中.java源代码的编码与编译器的编码。如果粘贴省略号,也可能会出错

因此,请使用转义的ASCII表示。您可以在系统附件字符映射中找到代码:

line = line.replace("\u2026", "");
此外,必须使用正确的编码读取该行。不要使用FileReader,而是使用另一个可以显式添加编码的类

BufferedReader in = new BufferedReader(new InputStreamReader(
        new FileInputStream(file), "UTF-8"));

与UTF-8编码不同,它可能是一些依赖于平台的代码,如Cp1252。

您是要替换三个点字符还是省略号的单个字符?(U+2026)@JonSkeet单个字符您能否发布示例代码,我们可以使用这些代码重现您的问题,因为它似乎正常工作。如果尝试
line=line.replace(“\u2026”,”),会发生什么?@Pshemo哪个消息优先于哪个其他消息?这可能会变得非常复杂,但收益很小…将其作为输入并替换。。。最后。“…”应该是单个字符FileReader和BufferedReader与问题有什么关系。不过,关于编码的观点是正确的。@madpheticator如果这行包含错误编码的省略号,它也可能出错。同意。作为一般的安全意识,你是对的。我只是说,问题不是从文件中读取任何内容。