2017-06-10 43 views
1

我正试图找出字典中最小和最大的长度为z的子字符串,它取自输入。 我不知道为什么,但如果条件不工作,我试图找到最小的子字符串。按字母顺序比较两个字符串

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); 
    } 
} 
+0

你在问什么? –

+0

看到代码,我试图找到最小子字符串,它不起作用 – Eduardo

+1

你最初宣布迷你空字符串,所以它不会改变。您应该将mini和max初始化为输入字符串的任何z长度子字符串。 'mini = max = s.substring(0,z);' –

回答

1

在这两个变量minimax

你已经初始化它们为空字符串的声明使他们比较x当条件将不会返回预期的结果和它们的值不会改变

问题

可以初始化它们:

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

编辑

,如果你尝试测试此条件:

x.compareTo((""))它总是会返回值大于0所以mini不会在任何情况下更改。