1. 程式人生 > >演算法-輸出英文字母對應的數字

演算法-輸出英文字母對應的數字

問題描述:
如輸入數字a~z, 輸出數字1~26
輸入數字ab,輸出28

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class To26 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner input = new Scanner(System.in);
        String src = ""; int target = 0
; while(input.hasNextLine()){ src = input.nextLine(); target = tranform(src); } } public static int tranform(String str){ String[] nums = {"a", "b","c", "d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"
}; Map<String, Integer> numMap = new HashMap<String, Integer>(); int result = 0; int length = str.length(); if(str.length()<0 || "".equals(str)){ System.out.println("ERROR"); return -1; } for(int i = 0; i<nums.length; i++){ numMap.put(nums[i], i); } if
(str.length()==1){ if(" ".equals(str)){ System.out.println("Error"); return -1; } //System.out.println("Error"); result = numMap.get(str) + 1; }else{ int tempLength = length; for(int i = 0; i < length; i++){ char ch = str.charAt(i); int location = numMap.get(String.valueOf(ch)); result += (location + 1) * 26 * (tempLength - 1); tempLength = tempLength - 1 ; } char ch = str.charAt(length-1); int temp = numMap.get(String.valueOf(ch)) + 1; //result = (length - 1)*26 + temp; result = result + temp; } System.out.println(result); return result; } }