cope函数是把string对象字符串去掉空格,然后返回string对象
str是输入的字符串对象//计算每个字母出现的次数
String str1=cope(str);
int n=1;
do{
//从字符串的第二个数开始比较,计算地一个字符出现的次数
for(int j=1;j<str1.length();j++){
if(str1.charAt(j)==str1.charAt(0))
n++;
}
//将统计过的字母全部转化为空格
str1=str1.replace(str1.charAt(0),' ');
//输出统计字母出现的总次数
System.out.println("字母"+str1.charAt(0)+"的个数为:"+n);
//调用cope函数将str1字符串空格去掉
str1=cope(str1);
//n重置为1
n=1;
}while(str1.length()!=0);
str是输入的字符串对象//计算每个字母出现的次数
String str1=cope(str);
int n=1;
do{
//从字符串的第二个数开始比较,计算地一个字符出现的次数
for(int j=1;j<str1.length();j++){
if(str1.charAt(j)==str1.charAt(0))
n++;
}
//将统计过的字母全部转化为空格
str1=str1.replace(str1.charAt(0),' ');
//输出统计字母出现的总次数
System.out.println("字母"+str1.charAt(0)+"的个数为:"+n);
//调用cope函数将str1字符串空格去掉
str1=cope(str1);
//n重置为1
n=1;
}while(str1.length()!=0);
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
class liaot extends Frame
{
Socket socket=null;
private TextArea text1;
private TextField text2;
//图形界面
liaot(){
text1 = new TextArea();
text2 = new TextField();
add(text1,"Center");
add(text2,"South");
event();
setBounds(300,300,300,300);
setVisible(true);
}
//事件响应
public void event(){
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
text2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try{
socket = new Socket("192.168.30.129",3334);
}catch(Exception ee){}
new Thread(new clientsend()).start();
new Thread(new clientrec()).start();
text2.setText("");
}
});
} public static void main(String[] args)throws Exception
{
new liaot();
}
//发送
class clientsend implements Runnable
{
public void run(){
byte[]buf = text2.getText().trim().getBytes();
String str = new String(buf,0,buf.length);
System.out.println(str);
text1.append(str);
try{
OutputStream out = socket.getOutputStream();
out.write((str+"\r\n").getBytes());
out.flush();
}catch(Exception e){}
}
}
//接收
class clientrec implements Runnable
{
public void run(){
byte[] buf = new byte[1024];
try{
InputStream in = socket.getInputStream();
in.read(buf);
String str = new String(buf,0,buf.length);
text1.append(str);
}catch(Exception e){}
}
}
我在文本框里写的内容只显示第一次写的,后面就什么都没有
int n=0;
do{
//从字符串的第二个数开始比较,计算地一个字符出现的次数
for(int i=0;i<str.length();i++){
for(int j=1;j<str1.length();j++){
if(str1.charAt(j)==str1.charAt(i))
n++;
}
//将统计过的字母全部转化为空格
str1=str1.replaceAll("str1.charAt(i)","" );
//输出统计字母出现的总次数
System.out.println("字母"+str1.charAt(i)+"的个数为:"+n);
//调用cope函数将str1字符串空格去掉
str1=cope(str1);
//n重置为1
n=0;
}
}while(str1.length()==0); } private static String cope(String str1) {
// TODO Auto-generated method stub
String s=str1.replaceAll(" ", "");
return s;
}
字母a的个数为:2
字母d的个数为:1
字母a的个数为:2
字母s的个数为:2
字母l的个数为:1
字母j的个数为:1
字母a的个数为:2
字母s的个数为:2
字母f的个数为:1
推荐你看其他的算法
谢谢,我自己弄出来了,是cope函数就有错误,教训啊,随便写数字大小引发大错误啊
Map<Character, Integer> map = new HashMap<Character, Integer>();
for (int i = 0; i < info.length(); i++) {
Integer count = map.get(info.charAt(i));
if (count == null) {
map.put(info.charAt(i), 1);
} else {
map.put(info.charAt(i), count + 1);
}
}
for (Character c : map.keySet()) {
System.out.println(c + " : " + map.get(c));
}
}