Java 相当于 Visual Basic 选项卡功能

标签 java string vb6 formatting string-formatting

我正在尝试将一些旧的 VB6 代码转换为我公司的 java 代码。除了字符串的格式化之外,我已经完成了所有操作。在旧的 VB6 代码中,他们将使用 Tab(N) 函数来指示字符串在写入文本文件时在行中的位置。我一直在寻找某种方法来用 Java 以任何方式复制它。我现在正在尝试找出 String.format 方法,但我对它的功能有点困惑。有没有其他函数或任何方法可以在java中设置字符串在一行上的绝对位置?一个示例是第一个字符串的长度为 15 个字符,该行中的下一个字符串需要位于行位置 50,而另一个字符串的长度为 4 个字符,之后的每个字符串应该位于位置 19、34、41、51 、59、66、76、83 和 90。任何帮助将不胜感激!

示例:

(name)                                           PRODUCTION DATE    : (date)

SERVICE           PROC  MODS       BILLED       ALLOWED      PAID          ADJ    ADJ    LINE REMARK
DATE              CODE           UNI    AMT       AMT     UNI    AMT       AMT    CODES  CODE

最佳答案

我遇到了类似的问题,并最终为此创建了一个构建器。

public class TabLineBuilder {

    int length;
    private String line;
    StringBuilder sb;

    public TabLineBuilder(int length) {
        this.length = length;
        initialize(); // call non-overridable method
    }

    public TabLineBuilder insert(int pos, String text) {
        sb.replace(pos, pos + text.length(), text);
        line = sb.toString();
        return this;
    }

    public String toString() {
        return line;
    }

    private void initialize() {
        // new line of spaces
        line = String.format("%" + length + "s", ' ');
        sb = new StringBuilder(line);
    }

    public void clear() {
        // Overridable public method
        initialize();
    }
}

示例:

TabLineBuilder tlb = new TabLineBuilder(120);
String line = tlb.insert(0, "(name)").insert(50, "PRODUCTION DATE").toString();
System.out.println(line);
tlb.clear();
line = tlb.insert(0, "DATE").insert(19, "CODE").insert(34, "UNI").toString();
System.out.println(line);
tlb.clear();

输出:

(name)                                            PRODUCTION DATE                                                       
DATE               CODE           UNI     

关于Java 相当于 Visual Basic 选项卡功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27046374/

相关文章:

java - 如何为 Web 应用程序创建文件服务器

Java - 如何在 JTextArea 中拆分整个单词

java - 处理与 Java 枚举不匹配的字符串

vb6 - Windows Vista x32 是否支持 VB6 IDE?

json - 使用 VBJSON 迭代嵌套对象

java - 为什么我用 Eclipse 制作的 Java 小程序无法运行?

java - 如何检索文本字段内的文本

java - PreparedStatement 和 DateTime

c - 如何将 char[] 转换为十六进制? C

vb6 - DIM 在 Visual Basic 和 BASIC 中代表什么?