java循环匹配递归的问题

wuxian递归的问题
wuxian递归的问题wuxian递归的问题wuxian递归的问题
wuxian递归的问题wuxian递归的问题
wuxian递归的问题
wuxian递归的问题wuxian递归的问题
wuxian递归的问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
private static void digui(String displayName, ArrayList<ArrayList<String>> object, int flag) {
        // TODO Auto-generated method stub
        Log.d("hehe""每次进来flag="+flag);
        if (flag > object.size()) {
            return;
        }
        //displayName博达波打安 //bda //object{博,波}{打,达}{安}
        ArrayList<String> value = object.get(flag);
        for (int i = 0; i < value.size(); i++) {// 博 波
            Log.d("hehe""flag =====" + flag);
            Log.d("hehe""value =====" + value);
            displayName = flag == 0 ? mDisplayName : displayName;
            Log.d("hehe""displayName=" + displayName+";mDisplayName="+mDisplayName);
            int pos = displayName.indexOf(value.get(i));
            Log.d("hehe""值=" + value.get(i) + ",pos=" + pos);
            if ((flag == 0) || (flag > 0 && pos == 0)) {
                if (flag == object.size() - 1) {
                    Log.d("hehe""return!!!!!!!!!!!!!!!!!!!!!!!" + flag);
                    return;
                }
                flag = flag + 1;
                String subStr = displayName.substring(pos + value.get(i).length());
                Log.d("hehe""剩余subStr=" + subStr + ",flag=" + flag);
                digui(subStr, object, flag);// 达 打 、、安
            }
        }
        //Log.d("hehe", "js*********************"+flag);
    }
    

不好意思代码这么来贴

这是基本的java问题啊,flag是值拷贝,你在函数里无论怎么改变,出来当然不对,

private static int digui(String displayName, ArrayList> object) {
int flag = 0;
...
return flag;