java - 使用字符串内容重复方法

标签 java methods iteration

我有一项学校作业,要求我编写一个程序 在对话框窗口中显示一个人物(男孩、女孩或火箭),具体取决于 取决于用户的选择。
虽然我已经设法做到了,但有一件事我无法解决。 在作业中,用户将能够选择如何 输入数字即可得出火箭的长度。
根据数量,我创建的两个方法将重复 本身使火箭的长度扩大。但我想不出任何办法 就是这样做的。

我一直在学习各种教程(如果、同时等),但我的经验有限 Java 让我失败了。有什么想法要做什么吗?

    import static javax.swing.JOptionPane.* ;

    public class Figurer 
    {
        public static void main (String [] arg) 
        {
            String hälsning, indata ;
            char svar ;
            hälsning ="Hej!\n"
                 + "Detta program skriver ut en figur\n"
                 + "som du väljer i nästa fönster." ;
            showMessageDialog (null, hälsning) ;

    do
    {
        indata = showInputDialog ("Välj mellan följande figurer:\n"
             + "Pojke\n"
             + "Flicka\n"
             + "Raket") ;

        switch(indata) {
            case "Pojke" :
            case "pojke" :    
                String showBoy = figureBoy () ;
                showMessageDialog (null, showBoy) ;
                break;
            case "Flicka" :
            case "flicka" :    
                String showGirl = figureGirl () ;
                showMessageDialog (null, showGirl) ;
                break;
            case "Raket" :
            case "raket" :
                String showRocket = figureRocket () ;
                showMessageDialog (null, showRocket) ;
                break;

     }  
        indata = showInputDialog ("Vill du se en till figur? (j/n) ") ;   // Repetionssats för fler beräkningar
                svar = indata.charAt(0);
            }
            while (svar == 'j' || svar == 'J') ; 
            }

        //METOD: figureBoy
        //INNEHÅLL: Argument för ihopsättande av figur föreställande en pojke
        //ARGUMENT: boy, part_huvud (), part_base (), part_body () och part_cone () 
        //RETURNERAS: Sammanställningen av argumenten till variabel showBoy
        public static String figureBoy () 
        {
            String boy = part_huvud () ;  
            boy = boy + "\n" + part_base () + "\n" + part_body () + "\n"
            + part_base () + "\n" + part_cone () ;
            return boy;
        }
        //METOD: figureGirl
        //INNEHÅLL: Argument för ihopsättande av figur föreställande en flicka
        //ARGUMENT: girl, part_cone () och part_base () 
        //RETURNERAS: Sammanställningen av argumenten till variabel showGirl
        public static String figureGirl () 
        {
            String girl = part_huvud () ;  
            girl = girl + "\n" + part_cone () + "\n" + part_base () + "\n"
            + part_cone () ;
            return girl;
        }
        //METOD: figureRocket
        //INNEHÅLL: Argument för ihopsättande av figur föreställande en raket
        //ARGUMENT: rocket, part_base (), part_body () och part_cone 
        //RETURNERAS: Sammanställningen av argumenten till variabel showRocket
        public static String figureRocket () 
        {

        }
        //METOD: part_huvud
        //INNEHÅLL: Argument med tecken som föreställer ett huvud
        //ARGUMENT: Variabeln hu och sträng med tecken som formar huvudet 
        //RETURNERAS: Innehållet i variabeln hu som skickas till metoden figureBoy, figureGirl och figureRocket
        public static String part_huvud ()
        {
            String hu ;
            hu = "  /      \\ \n"
            + " |@,@| \n"
            + "  \\  v  /" ;
            return hu;
        //METOD: part_base
        //INNEHÅLL: Argument med tecken som föreställer ett tjockare streck
        //ARGUMENT: Variabeln ba och sträng med tecken som formar strecket 
        //RETURNERAS: Innehållet i variabeln ba som skickas till metoden figureBoy, figureGirl och figureRocket
        }
        public static String part_base ()
        {
            String ba ;
            ba = "=====" ;
            return ba  ;
        //METOD: part_body
        //INNEHÅLL: Argument med tecken som föreställer två paralella linjer
        //ARGUMENT: Variabeln ba och sträng med tecken som formar linjerna 
        //RETURNERAS: Innehållet i variabeln bo som skickas till metoden figureBoy, figureGirl och figureRocket    
        }
        public static String part_body ()
        {
            String bo ;
            bo = "|         |\n"
            +"|         |\n"   
            +"|         |" ;    
            return bo ;
        //METOD: part_cone
        //INNEHÅLL: Argument med tecken som föreställer en kona
        //ARGUMENT: Variabeln ba och sträng med tecken som formar konan 
        //RETURNERAS: Innehållet i variabeln co som skickas till metoden figureBoy, figureGirl och figureRocket    
        }
        public static String part_cone ()
        {
            String co ;
            co = "     /\\\n"
            +"   /    \\      \n"   
            +" /        \\       " ;    
            return co ;
        }
}   

最佳答案

不会回答并编写所有代码,但这里有一些方向。

首先,当涉及到字符串时,您可以更改为小写以进行不区分大小写的比较:

indata = indata.toLowerCase();

这样,您就不需要将所有大小写加倍,即使它们不小心将第二个字母大写,您也会匹配。如果您需要执行 equals 而不是 switch,请执行以下操作:

indata.equalsIgnoreCase("some value");

或者更好的是,避免 null:

"someotherstring".equalsIgnoreCase(indata);

其次,您可以在循环期间构建任意长度的字符串,就像在循环中添加数字一样。但要完成此操作,请使用 StringBuilder 对象:

StringBuilder rocketBody = new StringBuilder();
int howmanypieces = (user input);
while (howmanypieces > 0) {

   rocketBody.append(rocketBodyPart());
   howmanypieces--;

}
rocketBody.toString();

关于java - 使用字符串内容重复方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22077914/

相关文章:

java - 相对于最终 Jar 的 Maven Shade 外部属性文件

java - Java 中的并发性 : synchronized static methods

java - 访问java中方法的返回值

java - 返回类型 void/方法替代方案?

loops - 无法在 Flutter 中过滤位置

linux遍历目录中的文件

java - 使用 Java RegEx 如何仅返回完全匹配的内容?

java - 在 SQL 语句中实现动态变量时,是否有比字符串连接更好的方法

java - 我可以从命令行调用除 main(String[]) 之外的 java 方法吗?

python - 使用日期时间确定时间间隔内的最高频率事件