我想要反转每一对奇数字符串,然后将它们与偶数字符串一起添加。
例如字符串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;。然后将字符串拆分成对并添加它们和/,*和%之类的其他操作但我似乎无法编写我的代码
提前致谢
答案 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) - 反转字符串
将i
与i+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)