IT源码网

Java:从文本中读取字符和字节

flyfish 2024年11月24日 程序员 133 0

我希望有一些好人可以帮助我从数据类型为文本的单行中读取字符和字节。

我有一个 Text.toString(),其中模式是前 2 个字符,后跟 2 个字节和剩余的字符。这是一个固定长度的文件,长度为 70。

我必须忽略这2个字节,这2个字节显示为特殊字符(有时显示为单个字符,有时显示为2个字符)。

我尝试使用 UTF-8、iso-8859-1、CP850、US-ASCII 等,如下

byte[] utf8bytes = value.toString().getBytes("iso-8859-1"); 
LOG.info(new String(utf8bytes, Charset.forName("UTF-8"))); 

输入数据:

12��00a1A10a0000000abcdef0ghijkl0abcde000000f0gh1a0bcded1234z1234  z000000000000002 
12ɹ00a1A10a0000000abcdef0ghijkl0abcde000000f0gh1a0bcded1234z1234  z000000000000002 

输出应该是: 1200a1A10a0000000abcdef0ghijkl0abcde000000f0gh1a0bcded1234z1234 z000000000000002 1200a1A10a0000000abcdef0ghijkl0abcde000000f0gh1a0bcded1234z1234 z000000000000002

该脚本位于 Hadoop Mapper 中。 任何帮助都会很棒,因为我一直在努力完成这项工作。

谢谢你, 雷瓦西。

请您参考如下方法:

如果您确定String中的所有其他字符都是字母数字,则可以使用replaceAll删除它们。请注意,我在其中留了空格,因为看起来您的预期输出想要保留该空格。

str = str.replaceAll("[^A-Za-z0-9 ]", ""); 

See it online!


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!