首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从异常消息堆栈中删除所有不必要的字符?

问如何从异常消息堆栈中删除所有不必要的字符?
EN

Stack Overflow用户
提问于 2020-12-14 02:19:19
回答 2查看 64关注 0票数 0

我想向后台报告异常问题,但是,有很多特殊字符需要删除。例如,\u003c (<)和\u003e (>)从该节点签名。

代码语言:javascript
复制
{
   "declaringClass":"android.widget.Toast",
   "fileName":"Toast.java",
   "isNativeMethod":false,
   "lineNumber":208,
   "methodName":"\u003cinit\u003e"
}

我也看到了\u0027 (撇号)。

代码语言:javascript
复制
"detailMessage":"Attempt to invoke virtual method \u0027java.lang.String android.content.Context.getPackageName()\u0027 on a null object reference"

最后,只要有类引用,就会添加美元符号。

代码语言:javascript
复制
com.test.ExceptionFragment$1trackExceptions$1(ExceptionFragment.java:201)

有没有什么通用的方法可以把这些符号从JSON中剔除?还是正则表达式是最好的解决方案?如果使用正则表达式,那么什么正则表达式可以解决上述场景?

EN

回答 2

Stack Overflow用户

发布于 2020-12-14 02:27:09

试试这个

字符串= org.apache.commons.lang.StringEscapeUtils.unescapeJava(str);

有关更多参考信息,请参阅https://commons.apache.org/proper/commons-lang/

其他参考https://docs.oracle.com/javase/specs/jls/se9/html/jls-3.html

commons:commons- UnicodeUnescaper也是可以接受的。

new UnicodeUnescaper().translate("\u0048\u0065\u006C\u006C\u006F World")返回"Hello World“

票数 0
EN

Stack Overflow用户

发布于 2020-12-14 07:51:03

为什么你认为这些字符是“不必要的”?

<init>和init不是一回事,所以你的错误报告可能会让人感到困惑。

同样,美元符号是类名中的一个重要字符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65279090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档