Java 十六进制值测试
我想捕捉这个异常,我想在catch块中做一些处理下面是代码:Java 十六进制值测试,java,Java,我想捕捉这个异常,我想在catch块中做一些处理下面是代码: try { root.setText(page.getText(field.getLine() + repetition, field.getColumn(), field.getLength())); } catch (org.jdom2.IllegalDataException e) { // ignore: some
try {
root.setText(page.getText(field.getLine() + repetition,
field.getColumn(),
field.getLength()));
} catch (org.jdom2.IllegalDataException e) {
// ignore: some lines can be empty and cannot
// be a valid XML character so we skip them
String invalidStr = page.getText(field.getLine() + repetition, field.getColumn(),field.getLength());
}
下面是使用e.printStackTrace()时打印的错误;方法:
org.jdom2.IllegalDataException: The data "
" is not legal for a JDOM character content: 0x000c is not a legal XML character.
at org.jdom2.Text.setText(Text.java:182)
那么,如何对字符0x000c的值进行测试:
String invalidStr = page.getText(field.getLine() + repetition, field.getColumn(),field.getLength());
if (invalidStr.equals(???)) {
}
先谢谢你
if (invalidStr.indexOf(0x000C) >= 0) ...
或
或
(使用a)对字符串对象使用“indexOf”方法:
String invalidStr = page.getText(field.getLine() + repetition, field.getColumn(),field.getLength());
if (invalidStr.indexOf((char)0x000C) >= 0) {
}
没有
String.contains(char)
方法。这对您有效吗(invalidStr.indexOf(0x000C)?感谢您的链接。现在有意义了。我感到困惑是因为两个原因。1 OP的字符串包含十六进制字符(通常转换为char)2.OP很久没有接受您的解决方案:)
if (invalidStr.contains("\u000C")) ...
String invalidStr = page.getText(field.getLine() + repetition, field.getColumn(),field.getLength());
if (invalidStr.indexOf((char)0x000C) >= 0) {
}