[英]Converting a string of letters into numbers
因此,我是计算机科学的新手,我们被要求做的一件事就是尝试创建一个程序,该程序首先将用户输入的单词转换为一串数字,其中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中分配给字母了?)。 我唯一的另一个想法是将其转换为一个数组,使用另一个包含数字的数组,并找到一种输出相关副本的方法。 但是我不确定。
谢谢!
安东尼
您可以减去两个char变量。 这给出了它们的ASCII值之间的差异。
for(int i=0; i<word.length(); i++)
{
char c = word.charAt(i);
System.out.println(c - 'a' +1);
}
假设您已经阅读了一个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));
尝试对int变量使用parseInt,对double变量使用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 */
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 */
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 */
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.