簡體   English   中英

如何使計數變量正確遞增?

[英]How do I make my count variable increment correctly?

我正在嘗試創建一個使用文本字段將字符串添加到鏈接列表的java小程序。 我無法使用搜索按鈕。 我試圖獲取用戶在文本字段中指定的字符串,然后搜索列表並打印找到該單詞的次數(如果有)。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.LinkedList;
import java.util.ListIterator;

/**
 * Created by joshuaogunnote on 31/10/2015.
 */

public class Applet2 extends JApplet {

    private String text;
    private int text1;
    JTextField value1, value2;
    LinkedList<String> list = new LinkedList<String>();
    public JLabel jLabel;
    public int count = 0;

我已經創建了這個search_count變量來計算找到該單詞的次數。

    public int search_count = 0;

    public void init() {

        JLabel prompt = new JLabel("Please enter a word");
        JLabel prompt1 = new JLabel("Please enter a certain letter");

        value1 = new JTextField(10);
        value2 = new JTextField(10);

        JPanel textPanel = new JPanel();
        textPanel.add(prompt);
        textPanel.add(value1);
        add(textPanel, BorderLayout.NORTH);
        textPanel.add(prompt1);
        textPanel.add(value2);


        JPanel centrePanel = new JPanel();
        text = "";
        jLabel = new JLabel(text);
        centrePanel.add(jLabel);
        add(centrePanel, BorderLayout.CENTER);


        JButton but = new JButton("Add word");
        JButton but1 = new JButton("Clear");
        JButton but2 = new JButton("Remove first occurrence");
        JButton but3 = new JButton("Remove all occurrences");
        JButton but4 = new JButton("Display all words begging with certain letter");
        JButton but5 = new JButton("Search");

        JPanel butPanel = new JPanel();

        butPanel.add(but);
        butPanel.add(but1);
        butPanel.add(but5);
        butPanel.add(but2);
        butPanel.add(but3);
        butPanel.add(but4);


        add(butPanel, BorderLayout.SOUTH);

        but.addActionListener(new ButtonHandler(this));
        but1.addActionListener(new ButtonHandler1(this));
        but5.addActionListener(new ButtonHandler2(this));

    }

    class ButtonHandler implements ActionListener {

        private Applet2 theApplet;

        public ButtonHandler(Applet2 app) {
            theApplet = app;
        }

        public void actionPerformed(ActionEvent e) {

            text = theApplet.value1.getText();

            try {

                text1 = Integer.parseInt(text);
                jLabel.setText("ERROR - The string " + "'" + text1 + "'" + " is not a valid word");

            } catch (NumberFormatException e1) {

                if (text.length() != 0) {
                    jLabel.setText("Word " + "'" + text + "'" + " has been added to the list");
                    count = count + 1;
                } else {
                    jLabel.setText("ERROR - Please enter a word");
                }

            }

        }
    }

    class ButtonHandler1 implements ActionListener {

        private Applet2 theApplet;

        public ButtonHandler1(Applet2 app) {
            theApplet = app;
        }

        public void actionPerformed(ActionEvent e) {

            list.clear();
            jLabel.setText("List has been cleared");
            count = 0;

        }
    }

    class ButtonHandler2 implements ActionListener {

        private Applet2 theApplet;

        public ButtonHandler2(Applet2 app) {
            theApplet = app;
        }

        public void actionPerformed(ActionEvent e) {

            String text = theApplet.value1.getText();

在這里,我嘗試使用一個for循環來遍歷列表中的所有字符串,如果找到匹配項,則遞增search_count。 但是,它不能產生正確的答案。 當用戶嘗試搜索不在列表中的單詞時,我也試圖產生錯誤消息。 如何獲取search_count變量以及如何在正確的時間顯示錯誤消息?

            for (int i = 0; i < list.size(); i++) {

                if(text.equals(list.get(i))){

                    search_count = search_count + 1;
                } else {
jLabel.setText("ERROR - word is not in the list")


            }

            jLabel.setText("Word " + "'" + text + "'" + " was found " + search_count + " time(s) in the list");

            if (text.length() == 0) {

                jLabel.setText("Please enter a word - The total number of words in the list are: " + count);

            }
        }

    }

}

在循環中使用count之前,似乎沒有將count聲明為變量。 如果輸出不是您想要的/期望的,則循環的條件會給您帶來其他東西,然后您就會想到它所做的。

int count = 0;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM