java - StringBuilder 不附加空格吗?

标签 java

我正在使用 Woodstock 组件开发一个 Web 应用程序。简而言之,如果下拉值等于“PRIMARY KEY”,则该函数应将表的名称(来自文本字段)存储到字符串 pk/primaryKey 中。

我目前面临的问题是,函数得到的结果是:

"abc"

而不是

"a, b, c"

为什么会发生这种情况?

public void addPK(TextField tf, DropDown dd, StringBuilder pk, int val) {
    if (((String) dd.getValue()).equals("PRIMARY KEY")) {
        if (val == 0) {
            pk.append((String) tf.getValue());
            val++;
        } else {
            pk.append(", " + (String) tf.getValue());
        }
    }
}


public String createButton1_action() {
    StringBuilder primaryKey = new StringBuilder();
    int pkCheck = 0;

    addPK(column_TF1, pkDropDown1, primaryKey, pkCheck);
    addPK(column_TF2, pkDropDown2, primaryKey, pkCheck);
    addPK(column_TF3, pkDropDown3, primaryKey, pkCheck);
    .
    .
}

谢谢。

最佳答案

当您调用方法“addPK”时,pkcheck 值始终为零。 S 要么在每次调用后增加 pkcheck 值,要么您可以使用 stringbuider 长度的值进行 cheak,您可以更改您的方法,例如

选项 1。

public void addPK(TextField tf, DropDown dd, StringBuilder pk) {
    if (((String) dd.getValue()).equals("PRIMARY KEY")) {
        if (pk.length()== 0) {
            pk.append((String) tf.getValue());
        } else {
            pk.append(", ").append((String) tf.getValue());
        }
    }
}


选项 2。

public int addPK(TextField tf, DropDown dd, StringBuilder pk, int val) {
    if (((String) dd.getValue()).equals("PRIMARY KEY")) {
        if (val == 0) {
            pk.append((String) tf.getValue());
            val++;
        } else {
            pk.append(", " + (String) tf.getValue());
        }
    }
    return val;
}


public String createButton1_action() {
    StringBuilder primaryKey = new StringBuilder();
    int pkCheck = 0;

    pkCheck = addPK(column_TF1, pkDropDown1, primaryKey, pkCheck);
    pkCheck = addPK(column_TF2, pkDropDown2, primaryKey, pkCheck);
    pkCheck = addPK(column_TF3, pkDropDown3, primaryKey, pkCheck);
    .
    .
}

*如果您使用 StringBuilder 或 StringBuffer,最佳实践是使用追加操作而不是“+”运算符

pk.append(", " + (String) tf.getValue());

替换为
pk.append(", ").append((String) tf.getValue());*

关于java - StringBuilder 不附加空格吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17312047/

相关文章:

java - Spring 4 网络 - java.lang.IllegalArgumentException : No matching constant for [0]

java - 使用 log4j 在名称为当前日期的不同文件中记录特定级别 (FATAL)

javascript - 如何从 Android Java 中无延迟地调用 WebView Javascript 中的函数?

java - System.in.read 实际返回什么?

java - 为什么不保留新实体?

java - 似乎无法使JavaFX与Java 10 JDK和Gradle一起使用

java - WebSphere MQ JMS 连接发生错误

java - 无法解释 ANTLRWorks 输出

java - 在 Java 中对 (\d{4},\d{4}) 进行正则表达式

java - 检查纬度和经度是否在一个圆圈内