我们说我有一个程序可以将字母转换成数字,以便:
输入: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);
}
}
答案 0 :(得分:3)
试试这个:
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.
答案 1 :(得分:1)
将地图定义为a,b,c等等,其值为1,2,3等。每当您收到一张令牌时,请从地图中取出并打印。
答案 2 :(得分:1)
大写字母,将其转换为ASCII,减去'A',然后加1.如果您正在处理多字符输入,则迭代字符串。按照之前的建议计算,将前一个总和乘以10,然后添加新值。
答案 3 :(得分:0)
Derp,我读错了整个问题。我的坏。
你能做的是,我想你有一个转换算法。 字母表中的每个字母都可以包含字母表中的值。
然后你需要做的就是匹配你找到的字母,用一个字母数组的字母,得到它的索引,然后加1。然后你得到了价值。如果那就是你想玩的方式。
答案 4 :(得分:0)
我想这是你要找的方法:String
的{{3}}
一个示例代码,可以完成您的工作:
String a="abcd";
for (int i = 0; i < a.length(); ++i) {
System.out.print(a.charAt(i)-'a'+1);
}
答案 5 :(得分:0)
您可以尝试将char转换为int而rest 96,您必须处理超出范围的字符或使用正则表达式。
此示例将abcd转换为1234
a是97的字符(alt + 9 7) z是char 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);
}
编辑:
public static void main(String args[]){
String abc = "AbCd";
String txt = "";
abc = abc.toLowerCase();
for(int i=0; i<abc.length(); i++){
int letter = (int)abc.charAt(i);
if(letter<97 || letter > 122)//in range
{
txt += ( (int)abc.charAt(i) - 96 );
}
}
System.out.println(txt);
}
答案 6 :(得分:0)
import java.util.Scanner; import java.io。*;
公共类LetteredNumerationSystem {
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");
}
}
}