Herro,嗯我不确定你是否使用这个网站,但是呃我们可以去看看......所以我需要这个项目的帮助,我必须这样做 -
输入[] []输出
A - F - >乘以3,除以4
G - J - >除以3 + 25
K - N - >;找到最大因素* 2
O - Q - >找到最大的素数* 3
R - W - >找出除1以外的最小因素
X - Z - >总和数
所以我想知道我的第一对夫妇是否正确,并需要帮助空白空间。所以字母代表的数字是“Z”是最后一个字母所以它的26,而“A”是第一个所以它的1.所以如果答复......谢谢!包乐趣;
import java.util.Scanner;
public class Fun {
public static void main(String[] args) {
// TODO Auto-generated method stub
run();
}
public static void run()
{
input();
evaluateAlphabet();
evaluate();
}
public static void input()
{
Scanner sc = new Scanner(System.in);
System.out.println("Enter a Letter, please");
x = sc.next();
}
public static String x = " ";
public static int temp = 0;
public static int answer = 0;
public static void evaluateAlphabet()
{
if(x.equals("A"))
{
temp = 1;
}
else if (x.equals("B"))
{
temp = 2;
}
else if (x.equals("C"))
{
temp = 3;
}
else if (x.equals("D"))
{
temp = 4;
}
else if (x.equals("E"))
{
temp = 5;
}
else if (x.equals("F"))
{
temp = 6;
}
else if (x.equals("G"))
{
temp = 7;
}
else if (x.equals("H"))
{
temp = 8;
}
else if (x.equals("I"))
{
temp = 9;
}
else if (x.equals("J"))
{
temp = 10;
}
else if (x.equals("K"))
{
temp = 11;
}
else if (x.equals("L"))
{
temp = 12;
}
else if (x.equals("M"))
{
temp = 13;
}
else if (x.equals("N"))
{
temp = 14;
}
else if (x.equals("O"))
{
temp = 15;
}
else if (x.equals("P"))
{
temp = 16;
}
else if (x.equals("Q"))
{
temp = 17;
}
else if (x.equals("R"))
{
temp = 18;
}
else if (x.equals("S"))
{
temp = 19;
}
else if (x.equals("T"))
{
temp = 20;
}
else if (x.equals("U"))
{
temp = 21;
}
else if (x.equals("V"))
{
temp = 22;
}
else if (x.equals("W"))
{
temp = 23;
}
else if (x.equals("X"))
{
temp = 24;
}
else if (x.equals("Y"))
{
temp = 25;
}
else if (x.equals("Z"))
{
temp = 26;
}
else if (x.equals("Qwerty"))
{
temp = 27;
}
}
public static void evaluate()
{
if(temp>=1 && temp<= 6)
{
answer = (temp * 3)/4;
System.out.println("Answer is " + answer);
}
else if(temp >= 7 && temp<= 10)
{
answer = (temp/3) + 25;
System.out.println("Answer is " + answer);
}
else if(temp >= 11 && temp<= 14)
{
}
else if(temp>=15 && temp<= 17)
{
for(int i = temp; i>0; i--)
{
for(int j = 2; j <=i/2 + 1; j++)
{
if(i%j==0)
{
break;
}
if(j==i/2 + 1)
{
answer = i * 3;
}
}
}
System.out.println("Answer is " + answer);
}
else if(temp>=18 && temp<= 23)
{
answer = temp;
}
else if(temp>= 24 && temp<=26)
answer = (answer * 12)%26;
System.out.println("Answer is " + answer);
}
}
-Corruption
答案 0 :(得分:0)
以下是char转换为int的更好方法: 假设字符串至少包含1个字符(检查其长度),您可以通过执行以下操作来获取临时字符:
temp = x.getCharAt(0) - 'A' + 1;
或,安全第一:
temp = 0;
if (x.matches("^[A-Z]{1}$") {
temp = x.getCharAt(0) - 'A' + 1;
}
这里发生了什么?每个字符都有一个ASCII码,一个整数。所以,当你有2个字符并且你试图获得它们之间的距离时,结果是一个int。 'A' - 'A' = 0
(这就是为什么我添加了+ 1
),'B' - 'A' = 1
等等。
对于if条件,我使用RegExp
。 ^
表示输入的开始,[A-Z]{1}
表示A-Z之一,$
表示输入结束。所以,如果它是一个AZ,temp会得到一个值,其他任何东西都不会在if中出现,temp
将保持为0,这样你就可以轻松测试你是否有AZ。
这就是代码审查,我不会给你解决方案,你必须更加努力,使用谷歌。如果我准备好复制粘贴,你就不会喜欢和学习。