所以我是计算机科学的新手,我们被要求做的事情之一是尝试创建一个程序,首先将用户输入的单词转换为一串数字,a = 1, b = 2,z = 26等以及其他一些我现在不会进入的东西,因为它们是扩展的。不可否认,她说她不介意我们完成它,因为这是我们今天第一次正确的java课程。
因此,鉴于此,有人可以给我任何提示如何做到这一点?我不希望完整的代码完全按照我需要学习的方式完成,因此非常感谢指导手。我到目前为止所写的内容:
import java.util.*;
public class main
{
/**
* Constructor for objects of class main
*/
public static void main(String [ ] args)
{
Scanner keyboard = new Scanner(System.in);
String word = "";
System.out.print("\nPlease enter a word: ");
word = keyboard.nextLine();
for(int i=0; i<word.length(); i++)
{
}
}
我知道几乎什么都没有,但正如所提到的那样,我们还没有完全学到任何东西,所以我到目前为止已经成功了,并且说实话,那里可能已经出现了问题。
我的假设是有一种方法让我在for循环中将每个字母转换为它的数字(可能数字已经分配给Java中的字母?)。我唯一的另一个想法是将它转换为数组,有另一个数字输入的数组,并找到输出相关对应的方法。但我不确定。
谢谢!
安东尼
答案 0 :(得分:1)
您可以减去两个char变量。这给出了它们的ASCII值之间的差异。
for(int i=0; i<word.length(); i++)
{
char c = word.charAt(i);
System.out.println(c - 'a' +1);
}
答案 1 :(得分:0)
假设您已阅读String
并需要int[]
数组,其中每个数字对应于从a = 1
到z = 26
的字母:
public int[] toNumbers(String s) {
if (s == null)
return null;
int[] r = new int[s.length()];
int i = 0;
for (char c : s.toLowerCase().toCharArray())
r[i++] = c - 'a' + 1;
return r;
}
要打印结果,只需使用Arrays.toString()
:
System.out.println(Arrays.toString(r));
答案 2 :(得分:-1)
尝试将parseInt用于int变量&amp; parseDouble用于双变量,例如
String num1 = "123"; /* <-- it's a string no a number */
String num2 = "2.3";
int x = Integer.parseInt(num1); /* String is converted to int */
int y = Double.parseDouble(num2); /* String is converted to double */
。