按字典顺序比较两个字符串

时间:2017-06-10 08:12:17

标签: java string compare lexicographic

我试图从输入中找出长度为z的词典编码最小和最大的子串。 我不知道为什么但if条件在我试图找到最小子串的地方不起作用。

import java.io.*;
import java.util.*;

public class Solution {

    public static void main(String[] args) {

        Scanner ip=new Scanner(System.in);

        String s=ip.next();
        int z=ip.nextInt();
        String max="";
        String mini="";
        String x="";

        for(int i=0;i<s.length()-z;i++) {
                x=s.substring(i,i+z);
                if(x.compareTo((mini))<0) //this is not working
                    mini=x;

                if(x.compareTo((max))>0)
                    max=x;
            }
        System.out.print(mini);
        System.out.print(max);
    }
}

1 个答案:

答案 0 :(得分:1)

声明变量minimax

的问题

您已将它们初始化为空字符串,因此在将它们与x进行比较时,条件不会返回预期结果,并且它们的值不会更改

你可以初始化它们:

 mini = s.substring(0, z);
 max  = s.substring(0, z);

修改

如果你试图测试这个条件:

x.compareTo((""))它总会返回大于0的值,因此mini在任何情况下都不会改变。