繁体   English   中英

将一串字母转换为数字

[英]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 = 1z = 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM