2017-10-15 94 views
-1

該程序將字符串轉換爲「rövarspråket」並將其從「rövarspråket」中轉換出來 - 所有輔音都被複制,並在它們之間插入「o」。元音,數字和其他字符保持原樣。 「羅瓦爾」因此變成了「羅羅沃瓦爾」。如何從最終課程調用主類的靜態方法?

public final class rovar 
{ 

    public static String lower_consonants = "bcdfhjklmnpqrstvwxz"; 
    public static String upper_consonants = "BCFGHJKLMNPQRSTVWXZ"; 

    public static String enrov(String normal) 
    { 
     if (normal == null) 
      return null; 
     StringBuilder builder = new StringBuilder(); 

     for(char c : normal.toCharArray()) 
     if (lower_consonants.contains(String.valueOf(c))) 
      builder.append(c + "o" + c); 
     else if (upper_consonants.contains(String.valueOf(c))) 
      builder.append(c + "O" + c) ; 
     else 
      builder.append(c); 

     return builder.toString(); 
    } 

    public static String derov(String rov) 
    { 
     if (rov == null) 
      return null; 

     for(char c : lower_consonants.toCharArray()) { 
      String find = (String.valueOf(c) + "o" + String.valueOf(c)); 
      rov = rov.replace(find, String.valueOf(c)); 
     } 

     for(char c : upper_consonants.toCharArray()){ 
      String find = (String.valueOf(c) + "O" + String.valueOf(c)); 
      rov = rov.replace(find, String.valueOf(c)); 
     } 
     return rov; 
    } 
} 

現在,我想編譯這個程序。因此,我創建了一個主類,並嘗試創建該類的新實例,然後調用這兩個方法。

public class RovarMain { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     rovar r = new rovar(); 
     r.enrov(); 
     r.derov(); 

    } 

} 

問題是我不知道爲那些方法調用採取哪個參數。因爲代碼顯示錯誤的上述兩行:在類型rovar方法enrov(字符串)是不適用的參數()

+1

題外話注:請學習Java命名約定 – rkosegi

+0

你應該調用一個公共靜態方法只是與類名,鏈接是關於C#靜態方法,但我認爲Java是一樣。 https://stackoverflow.com/questions/35568120/having-trouble-calling-a-public-method-in-a-static-method/35568241#35568241 – Jaycee

回答

0

由於兩者都是可以調用它們而不對象的靜態方法。而這兩種方法都是參數化的。爲主要方法的代碼示例:

rovar.enrov("PARAMETER_1"); rovar.derov("PARAMETER_1); 
+0

Md khirul ashik,謝謝你的回答。我的主要觀點是我的情況是什麼參數。可能是(rover.lower_consonants)&(rover.upper_consonants)? –

+0

這兩個函數都在檢查大寫和小寫字母。你不應該改變這種情況。您的參數值可以包含兩者。或者您可以將它作爲大寫字母發送,並取消兩個函數中的小寫檢查。 –

+0

Md khirul ashik,說實話我沒有明白我要做什麼。目前你看到我的變量(例如private static String lower_consonants ...)被設置爲「private」。我將如何使用變量作爲另一個類中的參數。它會是這樣的:Rovar.enrov(Rovar.lower_consonants,Rovar.upper_consonants); ? –

相關問題