Помогите доделать задачу на java со строками
Весь код не уместился, я дополнила вопрос
Я добавила поле для ввода символа, но нужно, чтобы это поле было на самой форме. Пользователь вводит символ, этот символ в словах должен замениться на #
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.*;
import javax.swing.JOptionPane;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class TestFrame extends JFrame {
public TestFrame() {
super("Тестовое окно");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
panel.add(Box.createVerticalGlue());
String name;
name = JOptionPane.showInputDialog("Vvedite bukvy");
final JLabel label = new JLabel("Выбранный файл");
label.setAlignmentX(CENTER_ALIGNMENT);
panel.add(label);
JButton showDialogButton = new JButton("Text Button");
JLabel jb = new JLabel("text1");
panel.add(jb);
JLabel jbb = new JLabel("text2");
panel.add(jbb);
panel.add(Box.createRigidArea(new Dimension(10, 10)));
JButton button = new JButton("Показать JFileChooser");
button.setAlignmentX(CENTER_ALIGNMENT);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser fileopen = new JFileChooser();
int ret = fileopen.showDialog(null, "Открыть файл");
if (ret == JFileChooser.APPROVE_OPTION) {
File file = fileopen.getSelectedFile();
label.setText(file.getName());
// Чтение содержимого файла
StringBuilder content = new StringBuilder();
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
String line;
while ((line = br.readLine()) != null) {
content.append(line).append('\n');
}
} catch (IOException ex) {
ex.printStackTrace();
}
// Преобразование текста с помощью функции toUpper
//String modifiedContent = toUpper.toUpper(content.toString());
String modifiedContent = reverse.reverse(content.toString());
jb.setText(modifiedContent);
jbb.setText(content.toString());
// Сохранение обработанного текста обратно в файл
try (BufferedWriter bw = new BufferedWriter(new FileWriter(file))) {
bw.write(modifiedContent);
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
});
panel.add(button);
panel.add(Box.createVerticalGlue());
getContentPane().add(panel);
setPreferredSize(new Dimension(400, 400));
pack();
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
new TestFrame();
}
});
}
}
class toUpper{
public static String toUpper(String input) {
String [] tmpArr = input.split(" ");
String result = "";
for (int i = 0; i < tmpArr.length; i++){
if(tmpArr[i].length() > 1){
char oldFirst = tmpArr[i].charAt(0);
result += tmpArr[i].substring(0,1).toUpperCase() + tmpArr[i].substring(1,tmpArr[i].length()) + " ";
}
}
return result;
}
}
class reverse{
public static String reverse(String inputString){
int stringLength = inputString.length();
String result = "";
for (int i = 0; i < stringLength; i++){
result = inputString.charAt(i) + result;
}
return result;
}
}
/*class replace{
public static String replace(String inputString){
int stringLength = inputString.length();
String result = "";
}
}*/
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
panel.add(Box.createVerticalGlue());
JTextField textField = new JTextField(20);
panel.add(textField);
final JLabel label = new JLabel("Выбранный файл");
label.setAlignmentX(CENTER_ALIGNMENT);
panel.add(label);
JButton showDialogButton = new JButton("Text Button");
JLabel jb = new JLabel("text1");
panel.add(jb);
JLabel jbb = new JLabel("text2");
panel.add(jbb);
panel.add(Box.createRigidArea(new Dimension(10, 10)));
JButton button = new JButton("Показать JFileChooser");
button.setAlignmentX(CENTER_ALIGNMENT);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser fileopen = new JFileChooser();
int ret = fileopen.showDialog(null, "Открыть файл");
if (ret == JFileChooser.APPROVE_OPTION) {
File file = fileopen.getSelectedFile();
label.setText(file.getName());
// Чтение содержимого файла
StringBuilder content = new StringBuilder();
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
String line;
while ((line = br.readLine()) != null) {
content.append(line).append('\n');
}
} catch (IOException ex) {
ex.printStackTrace();
}
// Преобразование текста с помощью функции toUpper
String modifiedContent = content.toString().replaceAll(textField.getText(), "#");
jb.setText(modifiedContent);
jbb.setText(content.toString());
// Сохранение обработанного текста обратно в файл
try (BufferedWriter bw = new BufferedWriter(new FileWriter(file))) {
bw.write(modifiedContent);
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
});
panel.add(button);
panel.add(Box.createVerticalGlue());
getContentPane().add(panel);
setPreferredSize(new Dimension(400, 400));
pack();
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame.setDefaultLookAndFeelDecorated(true);
J