Kelime bulma programında sorun

Merhabalar kendimce bir metin içindeki aradığın kelimeden kaç tane olduğunu söyleyen bir program yapmaya çalıştım.
Programı çalıştırırsanız göreceksiniz(hata vermiyor, sorunu aşağıda söylicem). Örnek metin:

Bu metin güzel bir metin. Bu metin çirkin bir metin.

Şimdi kodları aşağıda veriyorum:

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class findword {
	static JFrame win = new JFrame("Find Selected Word");
	static JTextArea text = new JTextArea();
	static JButton button = new JButton("Find");
	
	public static void main(String[]args) {
		win.setSize(800,800);
		win.setLayout(null);
		
		text.setBounds(150, 0, 500, 500);
		text.setLineWrap(true);
		text.setWrapStyleWord(true); 
		
		button.setBounds(5, 5, 70, 20);
		button.setBorderPainted(false);
		
		button.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				JFrame f = new JFrame("Find");
				f.setSize(400,100);
				f.setLayout(null);
				
				JTextField txt = new JTextField();
				txt.setBounds(3, 15, 230, 30);
				
				JButton find = new JButton("Find");
				find.setBounds(237, 15, 70, 30);
				
				f.add(txt);
				f.add(find);
				f.setVisible(true);
				
				find.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent x) {
					int w = 0;
					String word = "";
					int valword = 0;
					for(int i=0; i< text.getText().length(); i++) {
						if(text.getText().charAt(i) == ' ') {
							word += text.getText().charAt(i);
							System.out.println(word);
							w++;
							if(w == 1) {
								w = 0;
								if(word == txt.getText()) {
									if(text.getText().charAt(i) == text.getText().length()) {
										valword =1;
										System.out.println(valword);
										break;
									}
										
									else {
										valword =1;
										System.out.println(valword);
										continue;
									}
										
								}
									
								else {
									continue;
								}
									
							}

						}
					}
				}
			});
				
			}
		});
		
		
		
		win.add(text);
		win.add(button);
		win.setVisible(true);
	}
}

Programı çalıştırdığınızda metni yazın Find butonuna tıklayın sonra bir Frame daha çıkacak oradada bulmak istediğiniz kelimeyi yazın ve Find butonuna tıklayın. İşte sorun ikinci Find butonunda. Çalışmıyor herhangi bir hata da vermiyor. Sorun büyük ihtimal ile şu aşağıdaki satırlardan birinde.

JButton find = new JButton("Find");
				find.setBounds(237, 15, 70, 30);
				
				f.add(txt);
				f.add(find);
				f.setVisible(true);
				
				find.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent x) {
					int w = 0;
					String word = "";
					int valword = 0;
					for(int i=0; i< text.getText().length(); i++) {
						if(text.getText().charAt(i) == ' ') {
							word += text.getText().charAt(i);
							System.out.println(word);
							w++;
							if(w == 1) {
								w = 0;
								if(word == txt.getText()) {
									if(text.getText().charAt(i) == text.getText().length()) {
										valword =1;
										System.out.println(valword);
										break;
									}
										
									else {
										valword =1;
										System.out.println(valword);
										continue;
									}
										
								}
									
								else {
									continue;
								}
									
							}

						}
					}
				}
			});

@coderistan bir el at kardeşim be :slight_smile:

Önceki konularınızda da elimden geldiğince yardımcı olmaya çalışmıştım, ama sanırım bildirim gelmiyor ve haberiniz olmadığı için geri dönüş yapmadınız. Ben de artık bakmayıverdim :slight_smile: Müsait bir zamanda detaylı bakacağım inşallah.

1 Beğeni

Burada eğer boşluk karakteri gelmezse ne olacağını tanımlamamışsınız. Sadece boşluk karakterlerinde çalışıyor şu an

1 Beğeni