Write a complete Java program that takes in any sentence from the user through a text field and splits the sentence into individual words. Next, append all the words from the sentence to a text area in reverse order. Finally, display the total number of words that have gone through this process in another text field. Provide a button labeled â??EXECUTEâ?? to run this process, and another button labeled â??CLEARâ?? to clear the sentence input text field. Your main program should be separated in another class.
Java Split String
import java.awt.*; import javax.swing.*; import java.awt.event.*; class Split { Split(){ JFrame f=new JFrame(); f.setLayout(null); JLabel label1=new JLabel("String: "); JLabel label2=new JLabel("Reversed String: "); JLabel label3=new JLabel("Count Words: "); final JTextField text1=new JTextField(20); final JTextArea area=new JTextArea(5,20); final JTextField text2=new JTextField(20); JButton b=new JButton("Execute"); JButton b1=new JButton("Clear"); b.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ String str=text1.getText(); StringBuffer buffer=new StringBuffer(); String array[]=str.split(" "); for(int i=array.length-1;i>=0;i--){ buffer.append(array[i]); buffer.append(" "); } area.setText(buffer.toString()); text2.setText(Integer.toString(array.length)); } }); b1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ text1.setText(""); text2.setText(""); area.setText(""); } }); label1.setBounds(10,10,100,20); text1.setBounds(150,10,200,20); label2.setBounds(10,40,100,20); area.setBounds(150,40,200,60); label3.setBounds(10,120,100,20); text2.setBounds(150,120,200,20); b.setBounds(10,150,100,20); b1.setBounds(150,150,100,20); f.add(label1); f.add(text1); f.add(label2); f.add(area); f.add(label3); f.add(text2); f.add(b); f.add(b1); f.setVisible(true); f.setSize(400,250); } } class SplitString{ public static void main(String[] args) { new Split(); } }
Ads