有没有更简单的方法来设置字符串字符的整数?

时间:2016-02-20 16:31:35

标签: java loops for-loop int charat

我正在制作转换器,将随机字符串转换为数字奇特的方式。但我想知道是否有更简单的方法来做到这一点:

package codec;

import javax.swing.JFrame;

public final class Codec extends JFrame {	

	public static void main(String[] args) {
    	    String x = "qwertyuiopasdfghjkl";
    	    		int a = x.charAt(1);    
    	    		int b = x.charAt(2);
    	    		int c = x.charAt(3);
    	    		int d = x.charAt(4);
    	    		int e = x.charAt(5);
    	    		int f = x.charAt(6);
    	    		int g = x.charAt(7);
    	    		int h = x.charAt(8);
    	    		int i = x.charAt(9);
    	    		int j = x.charAt(10);
    	    		int k = x.charAt(11);
    	    		int l = x.charAt(12);
    	    		int m = x.charAt(13);
    	    		int n = x.charAt(14);
    	    		int o = x.charAt(15);
    	    		int p = x.charAt(16);
    	    		int q = x.charAt(17);
    	    		int r = x.charAt(18);
    	    		System.out.println(a*b+c+d*e+f+g*h+i+j*k+l*m+n*o+p+q*r);
	}
}

它给了我“81782”,我可以简单地改变数字和计算。 我没有写过很多java,所以我真的很初学。 用循环这样做是否合理:

for (int i = 1; i < x.length() ; i++){
//code 	
}

2 个答案:

答案 0 :(得分:0)

也许这可以帮到你。此外,请注意,字符串从索引0开始,而不是1.因此,您的&#39; a&#39;是符号&#39; w&#39;。

public static void main(String[] args) {
    String x = "qwertyuiopasdfghjkl";
    Map<Character, Integer> charMap = new HashMap<>();
    char c = 'a';
    for (int i = 1; i < x.length(); i++) {
        charMap.put(c++, (int) x.charAt(i));
    }
    System.out.println(charMap.get('a') * charMap.get('b')
                       + charMap.get('c')
                       + charMap.get('d') * charMap.get('e')
                       + charMap.get('f')
                       + charMap.get('g') * charMap.get('h')
                       + charMap.get('i')
                       + charMap.get('j') * charMap.get('k')
                       + charMap.get('l') * charMap.get('m')
                       + charMap.get('n') * charMap.get('o')
                       + charMap.get('p')
                       + charMap.get('q') * charMap.get('r'));
}

答案 1 :(得分:-1)

这是使用循环的代码

String afd = "234567890";
    int sum=0;
    for(int ij=0;ij<afd.length();ij+=2)
    {
        sum = sum + (afd.charAt(ij)*afd.charAt(ij+1));
    }
       System.out.println(sum);

希望我的代码在这方面帮助你。快乐编码

相关问题