Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package lab8;
- import java.awt.EventQueue;
- import java.awt.FileDialog;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- import java.awt.BorderLayout;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- import javax.swing.JButton;
- import javax.swing.JTextArea;
- import javax.swing.JScrollPane;
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileReader;
- import java.io.IOException;
- public class ns {
- private JFrame frame;
- private JTextArea tArea;
- private StringBuilder currentText = null;
- /**
- * Launch the application.
- */
- public static void main(String[] args) {
- EventQueue.invokeLater(new Runnable() {
- public void run() {
- try {
- ns window = new ns();
- window.frame.setVisible(true);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- });
- }
- /**
- * Create the application.
- */
- public ns() {
- initialize();
- }
- /**
- * Initialize the contents of the frame.
- */
- private void initialize() {
- frame = new JFrame();
- frame.setBounds(100, 100, 450, 300);
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- JPanel panel = new JPanel();
- frame.getContentPane().add(panel, BorderLayout.NORTH);
- JButton btnLoadText = new JButton("Текст");
- btnLoadText.addMouseListener(new MouseAdapter() {
- @Override
- public void mouseClicked(MouseEvent arg0) {
- FileDialog fd = new FileDialog(new JFrame(), "Текст");
- fd.show();//Кликабельность кнопки
- currentText = loadText(fd.getDirectory() + fd.getFile());
- tArea.setText(currentText.toString());
- }
- });
- panel.add(btnLoadText);
- JButton btnChange = new JButton("Обработать");
- btnChange.addMouseListener(new MouseAdapter() {
- @Override
- public void mouseClicked(MouseEvent e) {
- change();
- }
- });
- panel.add(btnChange);
- tArea = new JTextArea();
- JScrollPane scrollPane = new JScrollPane(tArea);
- frame.getContentPane().add(scrollPane, BorderLayout.CENTER);
- }
- private StringBuilder loadText(String path) {
- StringBuilder res = new StringBuilder();
- try (BufferedReader br = new BufferedReader(new FileReader(path))) {
- while (br.ready()) {
- res.append(br.readLine() + System.lineSeparator());
- }
- } catch (IOException ex) {
- }
- return res;
- }
- private void change() {
- if (currentText != null) {
- StringBuilder newText = new StringBuilder();
- StringBuilder word = new StringBuilder();
- char ch;
- boolean inWord = false;
- for (int i = 0; i < currentText.length(); i++) {
- ch = currentText.charAt(i);
- if (Character.isAlphabetic(ch)) {
- if (!inWord) {
- inWord = true;
- word.setLength(0);
- }
- word.append(ch);
- } else {
- if (check(word)) {
- newText.append(toLowerCase(word));
- } else {
- newText.append(word);
- }
- newText.append(ch);
- word.setLength(0);
- inWord = false;
- }
- }
- tArea.setText(newText.toString());
- }
- }
- private boolean check(StringBuilder word) {
- if (word.length() == 0) {
- return false;
- }
- char lastCh = word.charAt(0);
- for (int i = 1; i < word.length(); i++) {
- if (lastCh == word.charAt(i)) {
- return true;
- }
- lastCh = word.charAt(i);
- }
- return false;
- }
- private StringBuilder toLowerCase(StringBuilder word) {
- StringBuilder res = new StringBuilder();
- for (int i = 0; i < word.length(); i++) {
- res.append(Character.toLowerCase(word.charAt(i)));
- }
- return res;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement