对于字符串中的每个字符,从右到左读取每个字符
For each character in string, read each one from right to left
我有这个伪代码,它将二进制值转换为十进制值:
int powTwo = 1;
int dec = 0;
for each character in the string, starting with the last,
if (char == '1')
dec += powTwo;
powTwo *= 2;
我如何编写此处指定的 for each 循环,它从最后一个字符开始查看字符串中的每个字符?
到目前为止我有
for(Character c : someString)
我假设这是家庭作业,您应该忠实于伪代码,不要使用其他可用的快捷方式。
几乎伪代码唯一缺少的是 for 循环。在您的真实代码中,我不使用 for-in
,而是将字符串向后移动:
int powTwo = 1;
int dec = 0;
// using the length of the string, start with a counter that is the length
// minus 1, decrement it by 1 until we get to 0
for (int i = someString.length() - 1; i >= 0; i--) {
// Get the character at position i in the string
char currentChar = someString.charAt(i);
// Check for a "1"
if (currentChar == '1') {
dec += powTwo;
}
powTwo *= 2;
}
我建议使用 StringBuilder#reverse。您可以反转 String
并循环遍历每个字符而不会造成任何混淆 for-loop
String initialValue = "Hello World!";
StringBuilder sb = new StringBuilder(initialValue);
String reversed = sb.reverse().toString();
char[] chars = reversed.toCharArray();
for (char c : chars) {
// Check for a "1"
if (c == '1') {
dec += powTwo;
}
powTwo *= 2;
}
// output: !dlroW olleH
如Cory所说,您可以从最后一个开始迭代并比较每个字符。
另一种方法是这样的,它确实有一个 for each 循环,正如你在问题中提到的
String reversedString=new StringBuffer(inputString).reverse().toString();
for(char c:reversedString.toCharArray()){
// Do Whatever You want to Do here
}
For-each 循环(高级或增强的 For 循环):
Java5 中引入的 for-each 循环。主要用于遍历数组或集合元素。 for-each 循环的优点是消除了出现错误的可能性,使代码更具可读性。
for-each 循环的语法:
for(data_type variable : array | collection){}
我有这个伪代码,它将二进制值转换为十进制值:
int powTwo = 1;
int dec = 0;
for each character in the string, starting with the last,
if (char == '1')
dec += powTwo;
powTwo *= 2;
我如何编写此处指定的 for each 循环,它从最后一个字符开始查看字符串中的每个字符? 到目前为止我有
for(Character c : someString)
我假设这是家庭作业,您应该忠实于伪代码,不要使用其他可用的快捷方式。
几乎伪代码唯一缺少的是 for 循环。在您的真实代码中,我不使用 for-in
,而是将字符串向后移动:
int powTwo = 1;
int dec = 0;
// using the length of the string, start with a counter that is the length
// minus 1, decrement it by 1 until we get to 0
for (int i = someString.length() - 1; i >= 0; i--) {
// Get the character at position i in the string
char currentChar = someString.charAt(i);
// Check for a "1"
if (currentChar == '1') {
dec += powTwo;
}
powTwo *= 2;
}
我建议使用 StringBuilder#reverse。您可以反转 String
并循环遍历每个字符而不会造成任何混淆 for-loop
String initialValue = "Hello World!";
StringBuilder sb = new StringBuilder(initialValue);
String reversed = sb.reverse().toString();
char[] chars = reversed.toCharArray();
for (char c : chars) {
// Check for a "1"
if (c == '1') {
dec += powTwo;
}
powTwo *= 2;
}
// output: !dlroW olleH
如Cory所说,您可以从最后一个开始迭代并比较每个字符。
另一种方法是这样的,它确实有一个 for each 循环,正如你在问题中提到的
String reversedString=new StringBuffer(inputString).reverse().toString();
for(char c:reversedString.toCharArray()){
// Do Whatever You want to Do here
}
For-each 循环(高级或增强的 For 循环):
Java5 中引入的 for-each 循环。主要用于遍历数组或集合元素。 for-each 循环的优点是消除了出现错误的可能性,使代码更具可读性。
for-each 循环的语法:
for(data_type variable : array | collection){}