java - 字符数组中的空格

标签 java

我只是想用字符数组做点什么。当我反转它时,每个原始字符后面都有一个空格。为什么 ?我的代码片段是这样的

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/

相关文章:

java - 插入数据时出现 SQL 异常 : com. microsoft.sqlserver.jdbc.SQLServerException

java - 如何从 while 添加变量来切换

javafx 组合框下拉菜单从屏幕边缘消失

java - 将文件移动到另一个类并且无法使重写的方法正常工作

java - 在java中运行cmd-line失败

java - 无法安装 JDK 9 因为 "Another Java installation is in progress"

java - 在 Grails 中使用 Hibernate Annotated Java 类时的日期问题

Java if-if-else 行为

java - 可以将默认实现添加到表示监听器的接口(interface)的方法中吗?

java - 如何在 Android 应用程序中将 PDF 文件转换为 DOC 文件