for循环中find是怎么工作的

public static void splitOper(String[] s){  
    Pattern p = Pattern.compile("[0-9]+");  // 以数字做分隔,正则表达式  
    for(int i=0;i<s.length;i++){  
        Matcher m = p.matcher(s[i]);    // 得到所有数字   
        m.find();   // 得到第一个数字   
        int Row = Integer.parseInt(m.group());  // 取出第一个数字   
        m.find();   // 得到第二个数字   
        int Col = Integer.parseInt(m.group());  // 取出第二个数字   
        System.out.println(fun(Row,Col));   // 计算结果并输出   
    }  
} 
    如果String[] s是R12C4,这段代码的作用是使Row =12,Col =4,
    我想问一下,在for循环是一个字符一个字符来的,里面的两个find是怎么匹配的

find()对字符串进行匹配,匹配到的字符串可以在任何位置.
Java代码示例:
Pattern p=Pattern.compile("\d+");
Matcher m=p.matcher("22bb23");
m.find();//返回true
Matcher m2=p.matcher("aa2223");
m2.find();//返回true
Matcher m3=p.matcher("aa2223bb");
m3.find();//返回true
Matcher m4=p.matcher("aabb");
m4.find();//返回false

可参照次链接。http://blog.csdn.net/cclovett/article/details/12448843