java:将大写字母转换为整数

时间:2014-04-25 18:43:24

标签: java io char

我正在研究一个USACO问题(骑)我试图将一个大写字母(即'A')转换为它的各自的int(对于'A'它将是1)并且它似乎没有工作。我目前正在做的是:

for(char c1 : st1ch)
{
    int charint = (int)c1;
    totalcharsum1 = totalcharsum1*charint;
}

..为了将读取string从文件(我转换为字符数组)转换为int对应文件。我假设并读取(int)“A”等将是1.但是,我的代码显然没有产生正确的结果。我相信这是问题,因为我看不到其他问题。我找不到这个问题的指南。当然我的错误可能在其他地方,所以不管怎样我会发布我的代码:

import java.io.*;

class ride {

    public static void main(String[] arg) throws IOException{

        BufferedReader reader = new BufferedReader(new FileReader ("ride.in"));
        String st1 = reader.readLine();
        String st2 = reader.readLine();
        int totalcharsum1 = 1;
        int totalcharsum2 = 1;
        char[] st1ch = st1.toCharArray();
        char[] st2ch = st2.toCharArray();

        for(char c1 : st1ch)
        {
            int charint = (int)c1;
            totalcharsum1 = totalcharsum1*charint;
        }
        for(char c2 : st2ch)
        {
            int charint = (int)c2;
            totalcharsum2 = totalcharsum2*charint;
        }
        PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("ride.out")));
        if(totalcharsum1%47 == totalcharsum2%47)
        {
            out.println("GO");
        }else{
            out.println("STAY");
        }
        out.close();
        System.exit(0);
    }
  }

我的问题是你如何将大写字母转换为字母表中的各个int?谢谢,山姆。

2 个答案:

答案 0 :(得分:0)

减去他们的ASCII值。

char ch = 'X';
int diff = ch -'A';

答案 1 :(得分:0)

您可以通过减去绝对ASCII值将Java中的char转换为int。下面是一个方法,它返回String中每个字符的整数值的乘积(对ride.java有用):

public static int makeNumber(String name) {
        int product = 1;
        //iterate through each character in the String name
        for (int i = 0; i < name.length(); i++) {
            //get the character value
            int charVal = (name.charAt(i) - 'A') + 1; 
            //multiply the product by the character value
            product *= charVal;
        }
        return product;
    }
}