Java 无法从LogCat内部服务分析字符串

Java 无法从LogCat内部服务分析字符串,java,android,string,Java,Android,String,因此,我有一个这样的字符串(从LogCat获得),我从下面的函数中接收: private OriginalPermissions identifyPermission(AccessibilityEvent event) { List < AccessibilityNodeInfo > mFoundNodeInfos; AccessibilityNodeInfo nodeInfo = event.getSource(); for (Map.Entry <

因此,我有一个这样的字符串(从LogCat获得),我从下面的函数中接收:

private OriginalPermissions identifyPermission(AccessibilityEvent event) {
    List < AccessibilityNodeInfo > mFoundNodeInfos;
    AccessibilityNodeInfo nodeInfo = event.getSource();
    for (Map.Entry < OriginalPermissions, String > permissions: pePers.entrySet()) {
        mFoundNodeInfos = nodeInfo.findAccessibilityNodeInfosByText(permissions.getValue());

        //Get Application Information
        Log.d("Information", appNamer(String.valueOf(mFoundNodeInfos)));

        if (mFoundNodeInfos.size() == 1) return permissions.getKey();
    }
    return OriginalPermissions.OTHER;
}
现在我必须得到两个单词
Allow
to
之间的字符串。我尝试的是:

private String appNamer(String parse){
     parse = parse.substring(parse.indexOf("Allow") + 6 , parse.length());
     parse = parse.substring(0, parse.indexOf(' '));
     return parse;
}
这段代码在个人基础上运行得非常好,但是当在我的android应用程序中运行时,我立即得到一个
ArrayIndexOutOfBounds异常

Log.d("Information", appNamer(appNamer(String.valueOf(mFoundNodeInfos))));
这是一个例外:

FATAL EXCEPTION: Thread-5
Process: com.triple.m.crabzilla.pepers, PID: 31783
java.lang.StringIndexOutOfBoundsException: length=2; regionStart=5; regionLength=-3
   at java.lang.String.substring(String.java:1931)
   at com.triple.m.crabzilla.pepers.PePersDetectorService.appNamer(PePersDetectorService.java:253)
   at com.triple.m.crabzilla.pepers.PePersDetectorService.identifyPermission(PePersDetectorService.java:243)
   at com.triple.m.crabzilla.pepers.PePersDetectorService.handlePermissionRequest(PePersDetectorService.java:80)
   at com.triple.m.crabzilla.pepers.PePersDetectorService.access$300(PePersDetectorService.java:29)
   at com.triple.m.crabzilla.pepers.PePersDetectorService$AccessibilityEventProcessor$1.run(PePersDetectorService.java:134)
   at java.lang.Thread.run(Thread.java:761)
如果没有字符串解析逻辑,
日志
可以完美地工作!我哪里做错了?
谢谢。

好的。。当被问到的时候,我会写下这个作为回答

在解析字符串之前打印它。它可能不是你想象的那样


一般来说,不要假设变量的值,不要滥用
print
函数和调试模式。这将告诉您程序中实际发生的情况,并防止您查找错误。

在解析字符串之前,请尝试打印字符串。它可能不是你想象的那样。完美!请写下这封信作为我的答案。我只是要确保绳子的长度足够大!
FATAL EXCEPTION: Thread-5
Process: com.triple.m.crabzilla.pepers, PID: 31783
java.lang.StringIndexOutOfBoundsException: length=2; regionStart=5; regionLength=-3
   at java.lang.String.substring(String.java:1931)
   at com.triple.m.crabzilla.pepers.PePersDetectorService.appNamer(PePersDetectorService.java:253)
   at com.triple.m.crabzilla.pepers.PePersDetectorService.identifyPermission(PePersDetectorService.java:243)
   at com.triple.m.crabzilla.pepers.PePersDetectorService.handlePermissionRequest(PePersDetectorService.java:80)
   at com.triple.m.crabzilla.pepers.PePersDetectorService.access$300(PePersDetectorService.java:29)
   at com.triple.m.crabzilla.pepers.PePersDetectorService$AccessibilityEventProcessor$1.run(PePersDetectorService.java:134)
   at java.lang.Thread.run(Thread.java:761)