java - 设置 TextArea 搜索输出的格式

标签 java string javafx text-files string-formatting

我需要你的帮助!

So basically i made a Search Student Tab who read a .txt file and output on textArea.

Image

但搜索后我认为:

Output result

但我想接受这个:

as Output on TextArea

这是我的代码:

 StringBuilder rsl = new StringBuilder();

    @FXML
    public void PressedSearch(ActionEvent event) throws IOException {                   //Ektelei Search sto arxeio ton mathiton
        if (searchStudent() == false) {
            result.setStyle("-fx-font:13 sherif;-fx-text-fill: red");
            result.setText("Failed to find the student");
        } else {
            result.setStyle("-fx-text-fill: black");
            rsl.setLength(0);
        }
    }

    public boolean searchStudent() throws IOException {         //Sto search o admin mporei na dei perissotera pragmata
        Path p = Paths.get("src", "inware", "users.txt");
        Scanner in = null;
        boolean i = false;
        in = new Scanner(p);
            while (in.hasNext()) {
                String line = in.nextLine();
                String[] fields = line.split("[,]");
                if (line.contains(search_field.getText())) {
                    rsl.append(fields[4] + "   " + fields[5]+ "   " + fields[6] + "   " + fields[7] + "   " + fields[8]
                            + "   " + fields[9] + "   " + fields[10]+ "   " + fields[11]+ "   " + fields[12]+ "   " + fields[13]
                            + "   " + fields[14]+ "   " + fields[15] + "   " + fields[16] + "   " + fields[17] + "   " + fields[18]
                            + "   " + fields[19] + "   " + fields[20] + "   " + fields[21]);
                    rsl.append("\n");  //Gia na kanei print polla atoma
                    i = true;
                }
            }
        result.setText(rsl.toString());
        in.close();
        return i;

最佳答案

尝试使用 String.format(String format,Object... args)。

而不是使用:

rsl.append(fields[4] + "   " + fields[5]+ "   " + fields[6] + "   " + fields[7] + "   " + fields[8]
                        + "   " + fields[9] + "   " + fields[10]+ "   " + fields[11]+ "   " + fields[12]+ "   " + fields[13]
                        + "   " + fields[14]+ "   " + fields[15] + "   " + fields[16] + "   " + fields[17] + "   " + fields[18]
                        + "   " + fields[19] + "   " + fields[20] + "   " + fields[21]);
                rsl.append("\n");  //Gia na kanei print polla atoma

您可以使用:

String format = "%10s %10s %10s %10s %10s %10s %10s %10s %10s %10s %10s %10s %10s %10s %10s %10s %10s %10s\n";
rsl.append(String.format(format,fields[4],fields[5],fields[6],fields[7],fields[8],fields[9],fields[10],fields[11],fields[12],fields[13],fields[14],fields[15],fields[16],fields[17],fields[18],fields[19],fields[20],fields[21]));

在格式字符串中,“%”和“s”(宽度字段)之间的数字表示要输出的最小字符数。您可以根据您的需要更改它。

关于java - 设置 TextArea 搜索输出的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53683129/

相关文章:

combobox - JavaFX 可编辑组合框 : Showing toString on item selection

java - Google 云消息服务器 ID - 生命周期

java - 如何让 SSHJ 在非标准端口上发起出站 SFTP?

python - 在 Pandas Dataframe 列的嵌套字典中搜索和替换

Python-3.x - 将字节数组的字符串表示形式转换回字符串

java - 如何调整多边形的大小?

java - java的String.format()中数字的可配置意义?

java - 如何使 ComboBox CellFactory 正确地动态禁用项目?

java - += 带有字符串和转换字符的运算符

JavaFX软件设计