Java 将字母转换为数字

Java 将字母转换为数字,java,Java,假设我有一个程序,可以将字母转换成数字,这样: 输入:abcd 产出:1234 如何有效地将abcd转换为1234 如何从令牌中提取每个单独的字符 顺便说一下,这不是家庭作业。(这是为了好玩) 这就是我到目前为止所做的: public class Test { public static void main(String[] args) throws IOException { BufferedReader f = new BufferedReader(new FileReader(

假设我有一个程序,可以将字母转换成数字,这样:

输入:abcd

产出:1234

  • 如何有效地将abcd转换为1234
  • 如何从令牌中提取每个单独的字符
  • 顺便说一下,这不是家庭作业。(这是为了好玩)

    这就是我到目前为止所做的:

    public class Test {
    public static void main(String[] args) throws IOException  {
    
        BufferedReader f = new BufferedReader(new FileReader("test.in"));
    
        PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("test.out.txt")));
    
        StringTokenizer st = new StringTokenizer(f.readLine());
    
        int i1 = Integer.parseInt(st.nextToken());
    
                // How can I convert this into integers? (where a = 1, b = 2, and c = 3)
    
                out.println(????);
    
            out.close();
            System.exit(0);                              
    
        }
    
    }
    

    德普,我把整个问题都看错了。我的错

    你能做的是,我想你有一个转换算法。 字母表中的每个字母都可以有字母表中的值


    然后,您所需要做的就是将您找到的字母与来自您的字母匹配一个字符串数组,获取它的索引,并向其中添加1。然后你得到了价值。如果你想这样玩的话。

    Derp,我把整个问题看错了。我的错

    你能做的是,我想你有一个转换算法。 字母表中的每个字母都可以有字母表中的值

    然后,您所需要做的就是将您找到的字母与来自您的字母匹配一个字符串数组,获取它的索引,并向其中添加1。然后你得到了价值。如果你想这样玩。

    试试这个:

    String s = "abcd";
    StringBuilder sb = new StringBuilder();
    for (char c : s.toCharArray()) {
        sb.append((char)(c - 'a' + 1));
    }
    // provided your string contains only lower case non-unicode (ASCII) characters.
    
    试试这个:

    String s = "abcd";
    StringBuilder sb = new StringBuilder();
    for (char c : s.toCharArray()) {
        sb.append((char)(c - 'a' + 1));
    }
    // provided your string contains only lower case non-unicode (ASCII) characters.
    

    有一个地图定义为a、b、c等键,值为1、2、3等。每当你收到一个令牌,从地图中获取并打印。

    有一个地图定义为a、b、c等键,值为1、2、3等。每当你收到令牌,从地图中获取并打印。

    大写字母,将其转换为ASCII,减去“a”,然后添加1。如果要处理多个字符的输入,请迭代字符串。按照之前的建议进行计算时,将之前的总和乘以10,然后添加新值。

    大写字母,将其转换为ASCII,减去“A”,然后添加1。如果要处理多个字符的输入,请迭代字符串。当您按照前面的建议进行计算时,将前面的总和乘以10,然后再加上新的值。

    我想这就是您要寻找的方法:
    String
    's

    一个示例代码,用于完成您所要完成的任务:

    String a="abcd";
    for (int i = 0; i < a.length(); ++i) {
       System.out.print(a.charAt(i)-'a'+1);
    }
    
    String a=“abcd”;
    对于(int i=0;i
    我想这就是您正在寻找的方法:
    字符串

    一个示例代码,用于完成您所要完成的任务:

    String a="abcd";
    for (int i = 0; i < a.length(); ++i) {
       System.out.print(a.charAt(i)-'a'+1);
    }
    
    String a=“abcd”;
    对于(int i=0;i
    您可以尝试将字符转换为int和rest 96,您必须注意超出范围的字符或使用正则表达式

    此示例将abcd转换为1234

    a是带有97的字符(alt+9 7) z是字符122

    A是字符65,因此您可以按范围处理,也可以将单词改为小写

    public static void main(String args[]){
            String abc = "abcd";
            String txt = "";
    
            for(int i=0; i<abc.length(); i++){
                txt+= ( (int)abc.charAt(i) - 96 );
            }
    
            System.out.println(txt);
        }
    
    publicstaticvoidmain(字符串参数[]){
    字符串abc=“abcd”;
    字符串txt=“”;
    
    对于(int i=0;i您可以尝试将字符转换为int和rest 96,您必须注意超出范围的字符或使用正则表达式

    此示例将abcd转换为1234

    a是带有97的字符(alt+9 7) z是字符122

    A是字符65,因此您可以按范围处理,也可以将单词改为小写

    public static void main(String args[]){
            String abc = "abcd";
            String txt = "";
    
            for(int i=0; i<abc.length(); i++){
                txt+= ( (int)abc.charAt(i) - 96 );
            }
    
            System.out.println(txt);
        }
    
    publicstaticvoidmain(字符串参数[]){
    字符串abc=“abcd”;
    字符串txt=“”;
    对于(inti=0;iimport java.util.Scanner;
    导入java.io.*

    公共类字母数字系统{

    public static void main(String args[]){
    
    File file = new File ("lettered.in");
    
        try{
    
        Scanner input = new Scanner(file);
    
        int dataCollect = input.nextInt();
        int sum=0;
        String lineInput ="";
    
    
          for(int i=0;i<=dataCollect;i++){
          while (input.hasNext()){
          lineInput=input.next();       
          char lineArray[] = lineInput.toCharArray();
             for(int j=0;j<lineArray.length;j++){
                if (lineArray[j] == 'A'){
                  sum+=1;
                }
                else if (lineArray[j] == 'B'){
                  sum+=10;
                }
                else if (lineArray[j] == 'C'){
                   sum+=100;
                }
                else if (lineArray[j] == 'D'){
                   sum+=1000;
                }
                else if (lineArray[j] == 'E'){
                   sum+=10000;
                }
                else if (lineArray[j] == 'F'){
                   sum+=100000;
                }
                else if (lineArray[j] == 'G'){
                   sum+=1000000;
                }
                else if (lineArray[j] == 'X'){
                   System.out.println(sum);
               sum=0;
                }
             }
            }
          }         
        }
    
        catch(FileNotFoundException e){
            System.out.println("ERROR");
            }   
    
    
    
    
    }
    
    publicstaticvoidmain(字符串参数[]){
    文件=新文件(“letted.in”);
    试一试{
    扫描仪输入=新扫描仪(文件);
    int dataCollect=input.nextInt();
    整数和=0;
    字符串lineInput=“”;
    对于(inti=0;iimport java.util.Scanner;
    导入java.io.*

    公共类字母数字系统{

    public static void main(String args[]){
    
    File file = new File ("lettered.in");
    
        try{
    
        Scanner input = new Scanner(file);
    
        int dataCollect = input.nextInt();
        int sum=0;
        String lineInput ="";
    
    
          for(int i=0;i<=dataCollect;i++){
          while (input.hasNext()){
          lineInput=input.next();       
          char lineArray[] = lineInput.toCharArray();
             for(int j=0;j<lineArray.length;j++){
                if (lineArray[j] == 'A'){
                  sum+=1;
                }
                else if (lineArray[j] == 'B'){
                  sum+=10;
                }
                else if (lineArray[j] == 'C'){
                   sum+=100;
                }
                else if (lineArray[j] == 'D'){
                   sum+=1000;
                }
                else if (lineArray[j] == 'E'){
                   sum+=10000;
                }
                else if (lineArray[j] == 'F'){
                   sum+=100000;
                }
                else if (lineArray[j] == 'G'){
                   sum+=1000000;
                }
                else if (lineArray[j] == 'X'){
                   System.out.println(sum);
               sum=0;
                }
             }
            }
          }         
        }
    
        catch(FileNotFoundException e){
            System.out.println("ERROR");
            }   
    
    
    
    
    }
    
    publicstaticvoidmain(字符串参数[]){
    文件=新文件(“letted.in”);
    试一试{
    扫描仪输入=新扫描仪(文件);
    int dataCollect=input.nextInt();
    整数和=0;
    字符串lineInput=“”;
    
    对于(int i=0;i大写字母,将其转换为ASCII,减去“A”,然后加1。你的问题需要更详细的说明。例如,“wxyz”应该翻译成什么?大写字母,将其转换为ASCII,减去“A”,然后加1。你的问题需要更详细的说明。例如,“wxyz”应该翻译成什么?不仅仅是鱼,他说(c-'a'+1)是怎么工作的?如果c='b'比它是'b'-'a'+1。那怎么等于2呢?因为你可以将字符转换为int,a=97,b=98,然后98-97=1,(假设a-a=0)不仅仅是鱼,他给了他盘子里的熟鱼。:(c-'a'+1)是怎么做的工作?那么如果c='b'比它是'b'-'a'+1。这怎么等于2?因为你可以将字符转换为int,a等于97,b等于98,然后98-97=1,(假设a-a=0)欢迎使用堆栈溢出!请解释你的代码是什么,以及为什么它会解决问题。答案只包含代码(即使它工作正常)通常不会帮助OP理解他们的问题。欢迎使用堆栈溢出!请解释您的代码的作用以及它解决问题的原因。仅包含代码的答案(即使它正在工作)通常不会帮助OP理解他们的问题。