这个字符串比较的方法是什么意思?(java)



```java
public static boolean check(StringBuffer x, StringBuffer y){
        int n = x.length(),m = y.length();
        int k = Math.max(n,m);
        for(int i=0;i<k;i++){
            if(x.charAt(i%n)<y.charAt(i%m))
                return true;
            if(x.charAt(i%n)>y.charAt(i%m))
                return false;
        }
        return true;
    }

```

字符串其实都是char拼接起来的,那么拆分后比较char如果每个位置上的char都一样,那就是字符串相同!

  1. 假设法 假设M长度为3,N长度为8
  2. 取最大的值,也就是N为8
  3. 遍历最大的值8字符串
  4. 假设i=0 0%3=0 0%8=0
         i=1    1%3=1     1%8=1
          ……
        i=3     3%3=0      3%8=3
         i=4     4%3=1      4%8=4
        i=5     5%3=2       5%8=5
        i=6      6%3=0      6%8=6
       ……
    
    比较数字字符串大小或者用于比较字符ACSLL值用的。