如何在字符串中向左或向右移动char字符?
答案 0 :(得分:2)
向后读取输入字符串,您需要将每个字符保留在每个单词的奇数索引和任何空白字符上。
您可以从此代码段开始。将其视为PoC以演示逻辑。可以进行优化。
String encoded = "bxoqb swi eymrawn yim";
StringBuilder decoded = new StringBuilder();
boolean keep = true;
for (int i = encoded.length() - 1; i >= 0; i--) {
if (encoded.charAt(i) != ' ') {
if (keep) {
decoded.append(encoded.charAt(i));
}
keep = !keep;
} else {
decoded.append(' ');
keep = true;
}
}
System.out.println("decoded = " + decoded);
<强>输出强>
decoded = my name is bob
<强>解释强>
for-loop
向后处理字符串,因此字符处理为miy nwarmye iws bqoxb
i
保存字符串encoded
keep
用作指示符keep
为true
时,我们将当前字符(字符串i
中位置encoded
上的字符)附加到字符串缓冲区decoded
< / LI>
,则keep
的值被否定(true-&gt; false,false-&gt; true),所以我们在每个奇数位置附加字符
,我们必须单独处理,每个
都附加到decoded
,keep
设置为{{1所以下一个非空白字符也会被添加答案 1 :(得分:0)
试试这个:
StringBuilder builder = new StringBuilder();
String[] charArray = encoded.split(" ");
for(int i = charArray.length-1 ; i >= 0; i--){
builder.append(charArray[i]);
}
String decoded = builder.toString();
答案 2 :(得分:0)
您必须使用 StringBuffer 来反转句子。然后您可以使用单词之间的空格逐字分割您的句子。在那之后基本的java知识...
String ss = "bxoqb swi eymrawn yim";
StringBuilder buffer = new StringBuilder(ss);
String word[] = buffer.reverse().toString().split(" ");
for (String word1 : word) {
char c[]=word1.toCharArray();
for(int x=0;x<c.length;x++){
if(x%2==0){
System.out.print(c[x]);
}
}
System.out.print(" ");
}