如何检查包含特殊字符的行?

时间:2018-08-22 15:41:17

标签: java utf-8 special-characters inputstream nio

嗨,我有一个存储在Linux系统中的文件,其中包含特殊字符^ C 像这样:

ABCDEF ^ CIJKLMN 现在,我需要在Java中读取此文件,并检测是否存在要拆分的^ C。 在UNIX中读取文件的问题。我必须使用cat -v fileName在其他我看不见的地方看到特殊的ch ^ ^ C。 这是我的示例代码。

Cache type:                                    Read/Write
  Cache line size:                               64
  Cache size:                                    16384
  Global memory size:                            4766494720
  Constant buffer size:                          3376637952
  Max number of constant args:                   8
  Local memory type:                             Scratchpad
  Local memory size:                             32768

1 个答案:

答案 0 :(得分:2)

您正在检查该行是否包含字符串“ ^ C”,而不是字符'^ C'(与0x03或{ {1}})。您应该搜索字符\u0003。这是一个适用于您的情况的代码示例:

0x03

byte[] fileContent = new byte[] {'A', 0x03, 'B'}; String fileContentStr = new String (fileContent); System.out.println (fileContentStr.contains ("^C")); // false System.out.println (fileContentStr.contains (String.valueOf ((char) 0x03))); // true System.out.println (fileContentStr.contains ("\u0003")); // true, thanks to @Thomas Fritsch for the precision String[] split = fileContentStr.split ("\u0003"); System.out.println (split.length); // 2 System.out.println (split[0]); // A System.out.println (split[1]); // B 字符以Caret Notation显示,并且必须解释为单个字符。