Я создал эту программу, где вы можете ввести строку, и она запишет ее и отобразит пользователю количество символов в этой строке и количество введенных строк. Например, если пользователь вводит текст «Sally» в текстовое поле и нажимает кнопку, он скажет:
Число строк: 1
Количество символов: 5
И пользователь может ввести больше строк, если они захотят, например, «Алекс», и это изменит число от 1 строки до 2 и количество символов до 9
В любом случае, я хочу, чтобы это было так второе текстовое поле, в котором пользователь может ввести несколько символов и выполнить поиск этих символов, чтобы увидеть, сколько строк, введенных пользователем ранее, содержит символы, найденные пользователем
Вот пример того, что он должен делать : Поэтому, если пользователь вводит: «Салли», «Джек» и «Такса», программа должна прочитать обратно, говоря, что есть 3 строки и 20 символов.
Теперь, если пользователь вводит «a c» «В поле поиска программа скажет:« Число строк с символом «c» равно 2 (в строках «Джек и такса» содержится «a c»)
Вот мой код для всего запрограммировать, если я Помощь выше приводила в замешательство
Мне просто нужна помощь о том, как кодировать деталь для поиска определенных c символов в этих строках
Я знаю, что есть что-то, называемое get.contains (), но я попытался реализовать это, и у меня возникли проблемы с ним
import javax.swing.*;
import java.awt.event.*;
public class good{
StringSet sSet;
JTextField inputStr;
JLabel numStr;
JLabel numChar;
JTextField inputStr2;
JLabel numofStr;
good() {
sSet=new StringSet();
JFrame f= new JFrame("StringSetYetAgain");
JLabel en=new JLabel("Enter a String:");
en.setBounds(50, 10, 100, 100);
numStr=new JLabel("Number of Strings: 0");
numStr.setBounds(50, 160, 400, 100);
numChar=new JLabel("Number of Characters: 0");
numChar.setBounds(50, 180, 400, 100);
inputStr=new JTextField();
inputStr.setBounds(50, 80, 400, 50);
JButton pushMe=new JButton("Push to include String");
pushMe.setBounds(50, 140, 400, 50);
JLabel enter=new JLabel("String to search for:");
enter.setBounds(50, 230, 400, 100);
inputStr2=new JTextField();
inputStr2.setBounds(50, 300, 400, 50);
JButton pushMe2=new JButton("Search");
pushMe2.setBounds(50, 360, 400, 50);
numofStr=new JLabel("Number of strings with: 0");
numofStr.setBounds(50, 405, 400, 50);
pushMe.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String s=inputStr.getText();
sSet.add(s);
String ns=numStr.getText();
ns=ns.substring(0, ns.length() - 1)+sSet.size();
numStr.setText(ns);
String nc=numChar.getText();
nc=nc.substring(0, nc.length() - 1)+sSet.numChars();
numChar.setText(nc);
inputStr.setText("");
}
});
//I would add the code for the search part here
f.add(en);
f.add(inputStr);
f.add(pushMe);
f.add(numStr);
f.add(numChar);
f.add(enter);
f.add(inputStr2);
f.add(pushMe2);
f.add(numofStr);
f.setSize(550,600);
f.setLayout(null);
f.setVisible(true);
}
public static void main(String[] args) {
new good();
}
}
Вот исходный код для класса StringSet
public class StringSet {
private String[] arr;
private int count;
public StringSet() {
arr = new String[200];
count = 0;
}
void add(String newStr){
arr[count++] = newStr;
}
int size(){
return count;
}
int numChars(){
int total = 0;
for(int i = 0; i < count; ++i){
total += arr[i].length();
}
return total;
}
int countStrings(int len){
int total = 0;
for(int i = 0; i < count; ++i){
if(arr[i].length() == len)
++total;
}
return total;
}
}
Вот часть, до сих пор для поиска символов
pushMe2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
public int countOf(String substring, StringSet sSet) {
int counter = 0;
for (int i = 0; i < sSet.size(); i++)
if (sSet.get(i).contains(substring))
counter++;
return counter;
}
}
});