2017-06-10 98 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不會在任何情況下更改。