private void test(){ String target = "java is very good , java "; String arr[] = target.split("[^a-zA-Z]+"); ArrayList al = new ArrayList(); ArrayList alResult = new ArrayList();
for(int i=0;i<arr.length;i++)al.add(arr[i]); for(int i=0;i<al.size();i++){ if(!alResult.contains(al.get(i))){ alResult.add(al.get(i)); alResult.add("1"); }else{ int index = alResult.indexOf(al.get(i)); int len = new Integer(""+alResult.get(index+1)).intValue(); alResult.remove(index+1); alResult.add(index+1,""+(++len)); } }
import java.util.ArrayList; import java.util.regex.*;public class test { public static void main(String[] agrs) { String str= "java is good yes java is very good a i love java very much"; String[] fenge=str.split("[^\\w]"); System.out.println(fenge.length); ArrayList list=new ArrayList();
for (int i=0;i<fenge.length;i++) { if (list.contains(fenge[i])==false) { Pattern pattern=Pattern.compile("\\b"+fenge[i]+"\\b"); Matcher matcher=pattern.matcher(str);
分割字符串
或者用正则表达式。我试着写了一个
Pattern pattern = Pattern.compile("(?<=\\s*)\\w+(?=(\\s+|\\p{Punct}))");把匹配到的字符串或者分割出来的字符串加到ArrayList里就行了
public static void main(String[] agrs) {
String target = "java is good , java ? ha ha , yes java ";
String[] strTemp = target.split(" ");
List<String> ls1 = new ArrayList<String>();
List<String> ls2 = new ArrayList<String>();
Iterator it1 = null;
Iterator it2 = null;
int i ;
for(i=0; i<strTemp.length; i++){
ls1.add(strTemp[i]);
ls2.add(strTemp[i]);
}
it1 = ls1.iterator();
it2 = ls2.iterator();
while(it1.hasNext()) {
i = 0;
String temp = (String)it1.next();
/* if(ls1.contains(temp2)) {
continue ;
} else {
temp2 = temp;
}*/
while(it2.hasNext()) {
if(temp.equals(it2.next())) {
i++;
}
}
it2 = ls2.iterator();
System.out.print(temp+"="+i+"\t");
}
}
}
上面的程序打印出来的结果是:
java=3 is=1 good=1 ,=2 java=3 ?=1 ha=2 ha=2 ,=2 yes=1 java=3
请问那位高人怎么去掉重复打印次数
import java.util.Iterator;
import java.util.List;
public class ArrayListTest {
public static void main(String[] agrs) {
String target = "java is good , yes , java is very good";
String[] strTemp = target.split(" ");
List<String> ls1 = new ArrayList<String>();
List<String> ls2 = new ArrayList<String>();
List<String> ls3= new ArrayList<String>();
Iterator it1 = null;
Iterator it2 = null;
int i ;
for(i=0; i<strTemp.length; i++){
ls1.add(strTemp[i]);
ls2.add(strTemp[i]);
}
it1 = ls1.iterator();
it2 = ls2.iterator();
while(it1.hasNext()) {
i = 0;
String temp = (String)it1.next();
while(it2.hasNext()) {
if(temp.equals(it2.next())) {
i++;
}
}
it2 = ls2.iterator();
if(!(ls3.contains(temp))) {
ls3.add(temp);
ls3.add(Integer.toString(i));
}
}
System.out.println(ls3);
}
}
String arr[] = target.split("[^a-zA-Z]+");
ArrayList al = new ArrayList();
ArrayList alResult = new ArrayList();
for(int i=0;i<arr.length;i++)al.add(arr[i]);
for(int i=0;i<al.size();i++){
if(!alResult.contains(al.get(i))){
alResult.add(al.get(i));
alResult.add("1");
}else{
int index = alResult.indexOf(al.get(i));
int len = new Integer(""+alResult.get(index+1)).intValue();
alResult.remove(index+1);
alResult.add(index+1,""+(++len));
}
}
for(int i=0;i<alResult.size();i+=2)
System.out.print(alResult.get(i)+"="+alResult.get(i+1)+"\t");
}
import java.util.regex.*;public class test {
public static void main(String[] agrs) {
String str= "java is good yes java is very good a i love java very much";
String[] fenge=str.split("[^\\w]");
System.out.println(fenge.length);
ArrayList list=new ArrayList();
for (int i=0;i<fenge.length;i++)
{
if (list.contains(fenge[i])==false) {
Pattern pattern=Pattern.compile("\\b"+fenge[i]+"\\b");
Matcher matcher=pattern.matcher(str);
int nums=0;
while(matcher.find())
{
nums++;
}
System.out.println(fenge[i]+":"+nums);
list.add(fenge[i]);
}
} }
}