翻转每个奇数字符串并将它们加在一起

时间:2014-09-03 10:06:06

标签: java string math split reverse

我想要反转每一对奇数字符串,然后将它们与偶数字符串一起添加。

例如字符串123456789将变为213465789然后将它们加在一起将得到21 + 34 + 65 + 78 + 9,其中= 207。

我目前的代码是

public static void main(String[] args) {
    String Num = "123456789";
    System.out.println(reverse(Num) + ".");
} 

public static int reverse(String a) {
    String newa = "";
    String revString = "";
    char ch;
    for (int i = 0; i < a.length(); i=i+4) {
        newa = (a.substring(i, i + 2));
        ch = newa.charAt(i);
        revString = ch + revString;
       }
    }

我确实有一个大致的想法,即反转每一对第二对字符串并将它们放回一个新的字符串,即#34; 213465789&#34;。然后将字符串拆分成对并添加它们和/,*和%之类的其他操作但我似乎无法编写我的代码

提前致谢

2 个答案:

答案 0 :(得分:1)

试试这个 -

int pairCout=0;
int sum =0;
for (int i = 0; i < a.length();i+=2) {
        String newa = a.substring(i, (i + 2)<a.length()?(i+2):a.length());
        pairCout++;
        if(pairCout%2 ==0){     // EVEN/ODD separation
            String reverse = new StringBuilder(newa ).reverse().toString();
            sum+=Integer.parseInt(reverse); // SUMMATION
        }else{
            sum+=Integer.parseInt(newa );  // SUMMATION
        }
}

只是一种方法 - 输出 - 207

答案 1 :(得分:0)

简单算法就像是

  • String Num = "123456789";

  • 循环(int i = 0到n-3; i = i + 2) - 反转字符串

  • ii+1交换 - 这将提供备用转换字符串

  • 再次for(int i= 0 to n-3;i=i+2) - 添加金额

  • sum = sum + ((chatAt(i)-'0')*10+(charAt(i+1)-'0')) - 使用char逻辑int[char]-'0'的类型转换,对于字符串“21”,逻辑将是有(2 * 10 + 1)