【问题标题】:How to integrate a loop in my code如何在我的代码中集成循环
【发布时间】:2016-11-21 18:49:06
【问题描述】:

我是 Java 新手。我的程序首先从用户那里获取有关他们汽车的输入,然后显示结果。 我需要将我的“Rövarspråk”集成到代码中,但我不确定如何。 如果用户拥有“Saab”或“Volvo”,“rövarspråk”循环应该更改用户的“字符串名称”。 如果有什么不清楚的地方,请告诉我,我会尽力解释得更好。

提前致谢。

public static void main(String[] args) {
    String lookSaab;

    String consonantsx;
    String input;
    String slang;
    String add;
    // String
    int length;
    // int
    Scanner skriv;
    // Scanner

    String reg;
    String year;
    String brand;
    String name;
    String car;
    String when;
    String small;
    String medium;
    String big;
    // String 
    int mod;
    int randomNumber;
    int quota;
    int denominator;
    // int







    reg = JOptionPane.showInputDialog("Ange registreringsnummer"); // Input plate number of your car
    year = JOptionPane.showInputDialog("Ange årsmodell"); // Input model year of the car
    mod = Integer.parseInt(year); 
    brand = JOptionPane.showInputDialog("Ange bilmärke"); //Input car brand
    name = JOptionPane.showInputDialog("Ange ägare "
                                           + "(för - och efternamn)"); //Input owner of the car first name + last name
    car = brand + reg;
    Date date = new Date();
    java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("EEE MMM dd");
    when = sdf.format(date);
    denominator = 1500;
    randomNumber = 1500 + (int)(Math.random() * ((40000 - 1500) + 1));
    quota = randomNumber / denominator;

    small = "Liten service"; 
    medium = "Medium service";
    big = "Stor service";
    if (randomNumber <= 8000){
        JOptionPane.showMessageDialog(null, small, "Typ av service", 1);
    } else if ( randomNumber <= 20000){ 
        JOptionPane.showMessageDialog(null, medium, "Typ av service", 1);
    } else {
        JOptionPane.showMessageDialog(null, big, "Typ av service", 1);
    }

    String resultat = "Bil: " + car + "\n" 
                      + "Årsmodell: " + mod + "\n"  
                      + "Ägare: " + name + "\n"  
                      + "Mästarställning: " + randomNumber + "\n"  
                      + "Inlämnad: " + when + "\n"  
                      + "Klar om: " + quota + " dagar";
    JOptionPane.showMessageDialog(null, resultat, "Resulat", 1);

    lookSaab = "Saab";

    if (brand.equals(lookSaab)){

    }

  /* Rövarspråket */



    consonantsx = "bBcCdDeEfFgGhHjJkKlLmMnNpPqQrRsStTvVwWxXzZ"; //Saves all consonants to string
char consonants[] = consonantsx.toCharArray();  //String to charr

System.out.println("Mata in en mening");
skriv = new Scanner(System.in);
input = skriv.nextLine();   //Saves the input
length = input.length();    //Length inc. space
char array[] = input.toCharArray(); // Input to a char array

slang = "";
    System.out.println("På rövarspråk:"); 
for(int i = 0; i<length; i++) {
        for(int x = 0; x<20; x++){
            if(array[i] == consonants[x])
            {
                add = array[i]+"o"+array[i];
                slang = slang + add;
                break;
            }
            else{
            }
        }
    }
    System.out.println(slang);
}
}

【问题讨论】:

  • 您确实意识到本网站上 99% 的人都不知道“Rövarspråk”是什么?您需要以更“国际化”的方式更好地解释自己。
  • e 或 E 是人声,不是辅音。请将 cmets 添加到代码中,这些单词在英语中的含义。
  • 我可以解释“rövarspråket”,但我认为知道它是什么并不重要。代码应该很好地解释了我想要做什么/程序做什么。但无论如何,关于“rövarspråket”的信息可以在这里找到:en.wikipedia.org/wiki/R%C3%B6varspr%C3%A5ket
  • @Lord_PedantenStein 我已经编辑了 eE,我添加了一些英文 cmets 以使其更容易理解
  • 因此,您所在国家/地区的人们说着一种疯狂的语言(有时是:p),而您想将“正常”的话翻译成疯狂的。好的 - 所以将 Rövarspra​​k 代码放在自己的方法中将是一个很好的起点。然后检查何时需要运行此方法并将其添加到那里。

标签: java string loops if-statement joptionpane


【解决方案1】:

好的,如前所述,一个好的开始是将您的 RoverSpraket 翻译器放入自己的方法中:

public String rovarSpraket(String normalString) {

    final String consonantsx = "bBcCdDeEfFgGhHjJkKlLmMnNpPqQrRsStTvVwWxXzZ"; 
    char consonants[] = consonantsx.toCharArray(); // String to charr

    int length = normalString.length(); // Length inc. space
    char array[] = normalString.toCharArray(); // Input to a char array

    String slang = "";
    System.out.println("På rövarspråk:");
    for (int i = 0; i < length; i++) {
        for (int x = 0; x < 20; x++) {
            if (array[i] == consonants[x]) {
                String add = array[i] + "o" + array[i];
                slang = slang + add;
                break;
            } else {
            }
        }
    }
    return slang;
}

此方法将“普通”字符串作为输入并返回它的 Rövarspråk 版本。

鉴于它现在可以在您想要的任何地方使用,例如:

 /i named my class "Goran" ;)
    Goran goran = new Goran(); //instatiate a class object

    String hello = "hello world";

    System.out.println(goran.rovarSpraket(hello)); //use class object method "roverSpraket"

这将在控制台上打印如下:

På rövarspråk: 呸呸呸呸

剩下要做的就是在剩下的代码中使用它。我猜你想要的是:

if (brand.equals("Saab") || brand.equals("Volvo")){
    name = rovarSpraket(name); //translate if brand is Saab or Volvo
}

以及调用该方法的工作示例(一种方法)

    public class Goran {

    public static void main(String[] args) {
        String brand;
        String name;

        //i named my class "Goran" ;)
        Goran goran = new Goran(); //instatiate a class object

        String hello = "hello world";

        System.out.println(goran.rovarSpraket(hello)); //use class object method "roverSpraket"

        brand = "Saab";
        name = "henry";

        if (brand.equals("Saab") || brand.equals("Volvo")){
            name = goran.rovarSpraket(name); //translate if brand is Saab or Volvo
        }

        System.out.println("new name is " + name);

    }

    public String rovarSpraket(String normalString) {

        final String consonantsx = "bBcCdDeEfFgGhHjJkKlLmMnNpPqQrRsStTvVwWxXzZ"; 
        char consonants[] = consonantsx.toCharArray(); // String to charr

        int length = normalString.length(); // Length inc. space
        char array[] = normalString.toCharArray(); // Input to a char array

        String slang = "";
        System.out.println("På rövarspråk:");
        for (int i = 0; i < length; i++) {
            for (int x = 0; x < 20; x++) {
                if (array[i] == consonants[x]) {
                    String add = array[i] + "o" + array[i];
                    slang = slang + add;
                    break;
                } else {
                }
            }
        }
        return slang;
    }
}

希望对你有所帮助^^

【讨论】:

  • 非常感谢,我从未创建过不同的方法,所以我不太确定该怎么做但是现在我已经创建了方法“RoverSpraket”,我得到“非静态变量 reg 不能从静态上下文引用”在 min main 方法中。我应该在我的主要方法中改变一些东西吗?
  • 你可以在静态上下文中使用方法ether或者你使用类的实例化来调用方法,我将添加一个例子。
  • 这个例子帮了很多忙,我从来没有创建过方法,但这让我明白了如何将它与我的代码集成。让我们看看我能不能做到:D
  • 顺便说一句,你的例子的输出是:På rövarspråk: hohlollolloldod På rövarspråk: new name is hoh
  • 从第二个例子来看,是的。 ;) - 所以你接受这个答案吗? xD
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-16
  • 1970-01-01
  • 2016-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多