编写一个java程序

编写一个程序,输出在在字符串“softjavasunjavaprogramjavaobjjavaservletjava"”中,子串“java”出现的次数。

import java.util.*;
public class Test {

//找出重复次数最多的字符,并打印出数量和字符
public static void main(String[] args) {
String a = "aaabbdcfeeswdfttrrccaa";
List ls = new LinkedList();
Test test = new Test();
for(int i=0; i<a.length(); i++){
if(!test.isHave(ls,(a.charAt(i)+""))){
ls.add(a.charAt(i)+"");
}
}
//保存相应的位置的字母的个数
int[] ret = new int[ls.size()];
int max =0; //最大数
for(int i=0; i<ls.size(); i++){
ret[i] = test.getNum(ls.get(i).toString(),a);
if(ret[i]>max){
max = ret[i];
}
}
//检查个数最大的,返回位置列表
List ls2 = new LinkedList();
for(int i=0; i<ret.length;i++){
if(ret[i]==max){
ls2.add(i+"");
}
}

//遍历ls2,打印出相应字母和个数
System.out.println("\n打印出个数最多的字母及个数:");
for(int i=0; i<ls2.size(); i++){
int m = Integer.parseInt(ls2.get(i).toString());
System.out.println("字母:"+ls.get(i).toString()+" 个数:"+ret[m]);
}

System.out.println("\n打印出所有字母及个数:");
for(int i=0; i<ret.length;i++){
System.out.println("字母:"+ls.get(i).toString()+" 个数:"+ret[i]);
}
}

//查询该列表 ls 是否有该字符
private boolean isHave(List ls, String k){
boolean flag = false;
for(int i=0; i<ls.size(); i++){
if(ls.get(i).toString().equals(k)){
flag = true;
break;
}
}
return flag;
}

//查询 a 中有几个 k
private int getNum(String k, String a){
int j=0;
for(int i=0; i<a.length(); i++){
if((a.charAt(i)+"").equals(k)){
j++;
}
}
return j;
}
}

运行结果:

打印出个数最多的字母及个数:
字母:a 个数:5

打印出所有字母及个数:
字母:a 个数:5
字母:b 个数:2
字母:d 个数:2
字母:c 个数:3
字母:f 个数:2
字母:e 个数:2
字母:s 个数:1
字母:w 个数:1
字母:t 个数:2
字母:r 个数:2
你自己再改改!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-06-16
其实呢可以写个简洁的方法,呵呵,虽然呢..... 呵呵

public static void main(String[] args) {
String a = "javasdfjavafsdjavafsdfsjavadfsjava";
String tag = "java";
boolean s1 = a.startsWith(tag);
boolean s2 = a.endsWith(tag);
String[] ss = a.split(tag);
int l = ss.length;
if((s1==true && s2 == false)||(s1==false && s2 == false)){
l = l-1;
}
System.out.println(tag+" 个数:"+l);
// for(String temp:ss){
// System.out.print("|"+temp+"|");
// System.out.println(temp.length());//这里在前后2个tab的情况下得到的string对象的长度是0,可以判断了
// }
}
第2个回答  2008-06-16
public static void main(String[] args) {
String str ="javasdfjavafsdjavafsdfsjavadfsjava";
String[] arg = (str+" ").split("java");
System.out.println(arg.length-1);
}
相似回答