2017-10-15 53 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); ? –

相关问题