首页 > 其他 > 详细

键盘输入一行字符串。将字符按字典序顺序输出,统计每个字符出现的次数和出现位置,统计含有单词个数,正向和反向输出单词

时间:2021-05-05 12:00:26      阅读:27      评论:0      收藏:0      [点我收藏+]

package start;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Arrays;
import java.util.Set;
import java.util.TreeMap;

public class sevevpointnineteo extends JFrame{
private JLabel a1;
private JTextField inputField;
private JTextArea outputArea;
private JButton b1,b2;
public sevevpointnineteo(){
super("分析语句");
super.setBackground(Color.black);
Container container=getContentPane();
container.setLayout(new FlowLayout());
a1=new JLabel("请输入一个句子;");
container.add(a1);
inputField=new JTextField(25);
container.add(inputField);
b1=new JButton("按题意输出结果");
container.add(b1);
outputArea=new JTextArea(10,25);
outputArea.setEditable(false);
container.add(new JScrollPane(outputArea));
b2=new JButton("退出");
container.add(b2);
ActionEventHandler handler=new ActionEventHandler();
b1.addActionListener(handler);
b2.addActionListener(handler);
setSize(300,400);
setVisible(true);
}
private class ActionEventHandler implements ActionListener{
public void actionPerformed(ActionEvent event){
if(event.getSource()==b2)
System.exit(0);
else if(event.getSource()==b1){
String str=inputField.getText();
char charArry[]=new char[str.length()];
str.getChars(0, str.length(), charArry, 0);
TreeMap<Character,Integer>tm=new TreeMap<Character,Integer>();
for(char ch:charArry){
Integer i=tm.get(ch);
if(i==null)
tm.put(ch, 1);
else{
++i;
tm.put(ch, i);
}
}
Set<Character>set=tm.keySet();
outputArea.setText("字符"+‘\t‘+"出现次数"+‘\t‘+"出现位置"+"\n");
for(Character key:set){
StringBuilder sb = new StringBuilder();
for(int i=0;i<charArry.length;i++){
if(charArry[i]==key)
sb.append(i+1).append(" ");
}
Integer value=tm.get(key);
StringBuilder op=new StringBuilder();
op.append(key).append(‘\t‘).append(value).append(‘\t‘).append(sb.toString());
outputArea.append(op+"\n");
}
Arrays.sort(charArry);
outputArea.append("按字典序输出:");
for(int i=0;i<charArry.length;i++)
outputArea.append(Character.toString(charArry[i]));
outputArea.append("\n");
String[]tokens=str.split(" ");
outputArea.append("单词个数:"+tokens.length+"\n");
outputArea.append("正向输出单词:"+"\n");
for(String element:tokens)
outputArea.append(element+"\n");
outputArea.append("反向输出:"+"\n");
for(int i=tokens.length-1;i>=0;i--)
outputArea.append(tokens[i]+"\n");
}
}
}
public static void main(String args[]){
sevevpointnineteo test=new sevevpointnineteo();
}
}

键盘输入一行字符串。将字符按字典序顺序输出,统计每个字符出现的次数和出现位置,统计含有单词个数,正向和反向输出单词

原文:https://www.cnblogs.com/msboke/p/14731123.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!