Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 找出JTextField的文本输入中有多少单词_Java_Swing_Jtextfield - Fatal编程技术网

Java 找出JTextField的文本输入中有多少单词

Java 找出JTextField的文本输入中有多少单词,java,swing,jtextfield,Java,Swing,Jtextfield,我最难找到如何编码JTextField的输入中有多少个单词,我有一个设置一个clear input按钮,一旦我找到了如何找到有多少个单词,我也可以清除它。谢谢各位,这是我的密码 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class CopyTextPanel extends JPanel { private JTextField input; private JLabel output, i

我最难找到如何编码JTextField的输入中有多少个单词,我有一个设置一个clear input按钮,一旦我找到了如何找到有多少个单词,我也可以清除它。谢谢各位,这是我的密码

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class CopyTextPanel extends JPanel
{
private JTextField input;
private JLabel output, inlabel, outlabel;
private JButton compute, clear;
private JPanel panel;

public CopyTextPanel()
{
    inlabel = new JLabel("Input Text:  ");
    outlabel = new JLabel("Text Statistics Results: ");
    input = new JTextField (" ", 25);
    output = new JLabel();
    compute = new JButton("Compute Statistics");
    compute.addActionListener (new ButtonListener());
    clear = new JButton("Clear Text");
    clear.addActionListener (new ButtonListener());
    panel = new JPanel();

    output.setPreferredSize (new Dimension(550, 30));
    panel.setPreferredSize (new Dimension(620, 100));
    panel.setBackground(Color.gray);
    panel.add(inlabel);
    panel.add(input);
    //panel.add(outlabel);
    //panel.add(output);
    panel.add(compute);
    panel.add(clear);
    panel.add(outlabel);
    panel.add(output);

    setPreferredSize (new Dimension(700, 150));
    setBackground(Color.cyan);
    add(panel);
}

private class ButtonListener implements ActionListener
{
    public void actionPerformed (ActionEvent event)
    {
        if (event.getSource()==compute)
        {
            {
                output.setText (input.getText());                     
            }
        }
        else
            input.setText("");
    }
}

对于像inputText中的文本那样的小块文本,您可以使用字符串分解为单词来生成字符串数组,并读取数组的长度:

String test = "um dois      tres quatro        cinco ";
String [] splitted = test.trim().split("\\p{javaSpaceChar}{1,}");
System.out.println(splitted.length);
//产出5

因此,请您输入:

String inputText = input.getText();
String [] splitted = inputText.trim().split("\\p{javaSpaceChar}{1,}");
int numberOfWords = splitted.length;

对于像inputText中的文本那样的小块文本,您可以使用字符串分解为单词来生成字符串数组,并读取数组的长度:

String test = "um dois      tres quatro        cinco ";
String [] splitted = test.trim().split("\\p{javaSpaceChar}{1,}");
System.out.println(splitted.length);
//产出5

因此,请您输入:

String inputText = input.getText();
String [] splitted = inputText.trim().split("\\p{javaSpaceChar}{1,}");
int numberOfWords = splitted.length;

您的基本问题可以更好地概括为“如何计算字符串中的字数”,我建议您首先对该主题进行一些研究,因为代码的其余部分与解决这个问题几乎没有关系您应该研究正则表达式。它们对于您正在尝试做的事情非常有用。您的基本问题可以更好地概括为“如何计算字符串中的字数”,我建议您首先对该主题进行一些研究,因为代码的其余部分与解决您应该研究正则表达式的问题没有多大关系。它们对于做你想做的事情非常有用。太棒了!非常感谢。我让它工作,现在我只是想知道我是否正确理解它。我知道inputtext变量设置intput.getText();一串。我不明白的是,如果我只是将Stringp[]splitted=inputText.split(“\\s”);以及为什么我需要添加所有其他方法调用。再次谢谢我真的谢谢你!您能帮助我更好地理解字符串数组的工作原理,而不是仅仅键入Stringp[]splitted=inputText.split(“\\s”);不客气。嗯,这两种方法在某种程度上是相似的。所使用的解决方案是一种更健壮的解决方案,因为它覆盖了所有空格的情况。请参考这个答案以获得更准确的回答:太棒了!非常感谢。我让它工作,现在我只是想知道我是否正确理解它。我知道inputtext变量设置intput.getText();一串。我不明白的是,如果我只是将Stringp[]splitted=inputText.split(“\\s”);以及为什么我需要添加所有其他方法调用。再次谢谢我真的谢谢你!您能帮助我更好地理解字符串数组的工作原理,而不是仅仅键入Stringp[]splitted=inputText.split(“\\s”);不客气。嗯,这两种方法在某种程度上是相似的。所使用的解决方案是一种更健壮的解决方案,因为它覆盖了所有空格的情况。请参考此答案以获得更准确的回答: