我只是想用字符数组做点什么。当我反转它时,每个原始字符后面都有一个空格。为什么 ?我的代码片段是这样的
public class StringReverseChar {
//REVERSE A STRING CHARACTER BY CHARACTER
static String mStr=".gnihtemos od ot gniyrT ma I";
int len;
int topOfS;
char[] myReverse=new char[75];
public StringReverseChar() {
topOfS=-1;
myReverse=new char[70];
}
public static void main(String ar[]){
StringReverseChar mObj=new StringReverseChar();
int len=mObj.calLen(mStr);
for(int i=0;i<len;i++)
mObj.pushChar(mStr.charAt(i));
// System.out.println("The Reverse is:");
while(mObj.topOfS !=-1)
System.out.print(mObj.popChar());
}
private char popChar() {
return myReverse[topOfS--];
}
private void pushChar(char c) {
myReverse[++topOfS]=c;
System.out.print(myReverse[topOfS++]);
}
private int calLen(String mStr2) {
return mStr2.length();
}
}
我的输出是这样的: 反过来是: 我正在尝试做一些事情。
最佳答案
罪魁祸首在这里:
private void pushChar(char c) {
myReverse[++topOfS]=c;
System.out.print(myReverse[topOfS++]);
}
您将 topOfS
递增两次。
请注意,整个代码可以替换为:
public class StringReverseChar {
static String mStr=".gnihtemos od ot gniyrT ma I";
public static void main(String ar[]) {
System.out.println(new StringBuilder(mStr).reverse());
}
}
关于java - 字符数组中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14133872/