用Java解码程序

时间:2016-02-09 18:17:29

标签: java

感谢帮助人员。看着阵列。想想我拥有它,但我很难将它打印出来。有任何想法吗?它打印出单词test,但仅在几个空格之后(假设我的字母应该出现在那里)想出来:

  for{
      person <- db.longQueryToFindPerson(id)
      calc <- db.anotherLongQueryCallCommission(person,baseSalary)
   }yield Foo(person,calc)

2 个答案:

答案 0 :(得分:0)

这是一个可能的解决方案,但下次做功课时却没有要求解决方案

import java.util.Scanner;
public class q1 {
    public static void main(String[] args) {
        char[] cipher = { 'D', 'W', 'E', 'L', 'H', 'O', 'R' };
        char decoded[] = new char[10];
        Scanner in = new Scanner(System.in);
        for (int i = 0; i < 10; ++i) {
            int num;
            do {
                num = in.nextInt();
            } while (num < 1 || num > 7);
            decoded[i] = cipher[num - 1];
        }
        System.out.println(decoded);
    }
}

答案 1 :(得分:0)

您可能希望将迭代重写为for循环。

for(int i = 0; i < 10; ++i)
{
    int input = in.nextInt();
    //switch statement
}

您需要使用switch语句查找每个数字的字母,我们添加一个默认大小写来处理错误的数字。 此开关进入for循环。

switch(input)
{
    case 1:
        //store letter to array
        break;
    ...
    default:
        --i;
        System.out.println("Incorrect number, please enter a new number");
}

要存储每个匹配的字母,我们创建一个数组,我们已经知道它需要10个长度。 这一行在for循环之前:

char[] decodedCharacters = new char[10]

将这一个放在每个switch语句中:

decodedCharacters[i] = "D"; //another letter for each case.

这是打印所有字符:

String decodedString = new String(decodedCharacters);
System.out.println(decodedString);

编辑: 请参阅@Guillaume的答案,为其他组合留出更多灵活性。 他的回答并没有处理不正确的数字。