使用.split后,如何在JTextArea中检查输入键命令?

时间:2016-03-02 05:30:35

标签: split line system jtextarea separator

我正在使用.getText()。split(&#34 ;;")来分隔JTextArea的输入。然后,我需要事后阅读每一行。问题:第一行之后的每一行似乎都以System.lineSeparator()开头,我无法弄清楚如何检测它。我正在尝试像.indexOf(System.lineSeparator())和.indexOf(" / n")这样的东西,但它没有被检测到。这叫什么?是的,我知道我可以告诉程序一旦它已经检查了第一行就采用行[c] .substring(1,lineLeft.length()),但必须有一个简单的解释为什么我不能找到"新线" indexOf()的东西。它还有助于防止我的程序中的错误使用indexOf()与新行。我正在制作像Jeroo这样的东西,以防你们想知道这是为了什么。要直观地查看我的问题,只需从互联网或PC上抓取足够大的图像并将其设置为"标记",然后更改TheRunner类中的frame.setSize()。但你可能已经知道了。然后,输入类似:

的内容

喜;

喜;

进入JTextArea,然后单击打印按钮。你会看到这个问题。

import javax.swing.JFrame;
public class TheRunner{
    public static void main(String[] args){
        JFrame frame = new JFrame("My GUI");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(new Test());
        frame.setVisible(true);
        frame.setSize(640, 960);
    }
}

import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Test extends JPanel implements ActionListener{
    JTextArea textArea = new JTextArea();
    String lineLeft;
    JButton button = new JButton("Print");
    public Test(){
        toDo();
    }
    public void toDo(){
        JLabel label = new JLabel(new ImageIcon("C:\\00105_1.jpg"));
        label.setLayout(null);
        add(label);
        label.add(textArea);
        label.add(button);
        button.setBounds(20, 230, 140, 60);
        textArea.setBounds(20, 20, 400, 200);
        button.addActionListener(this);
    }
    public void actionPerformed(ActionEvent e){
        if(e.getSource() == button){
            String[] lines = textArea.getText().split(";");
            for(int c = 0; c < lines.length; c++){
                System.out.println(lines[c]);
            }
        System.out.println("First line starts with: " + lines[0].substring(0, 1));
        System.out.println("Second line starts with: " + lines[1].substring(0, 1));
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我认为没有必要使用;字符。如果您想从JTextArea获取每一行,您可以使用以下

String[] lines = textArea.getText().split("\n");