当前位置 : 主页 > 编程语言 > java >

Java实现统计某字符串在另一个字符串中出现的次数——split分隔字符

来源:互联网 收集:自由互联 发布时间:2022-07-22
1.给固定的一个字符串,并实现。 package cn.redcore.test; import java.util.HashMap; import java.util.Map; import java.util.Set; public class CountStr { public static void main(String[] args) { String str = "asdfajlksdfjaslgkdfdf

1.给固定的一个字符串,并实现。

package cn.redcore.test;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class CountStr {

public static void main(String[] args) {
String str = "asdfajlksdfjaslgkdfdfsdfg";

Map<String, Integer> map = new HashMap<String, Integer>();
String[] split = str.split("");
for(int i=0; i<split.length; i++){
if(!"".equals(split[i]) &&//如果map当前中包含该单词,那么取得该词当次数值 + 1 + 1);
}else if(!"".equals(split[i])){ //如果map当前中不包含该单词,那么将该单词加入到map集合中,该单词作为key,值设为1 1);
}
}
Set<String> keySet = map.keySet();
for(String string : keySet){
System.out.println(string + "出现的次数:" + map.get(string));
}

}

}

2.给固定的一个字符串,封装一个方法。

package com.mqs;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Test1 {

//输出字符串每个英文字母出现的次数
public static void main(String[] args) {
printStr("hdusfshhhhsfjksfkssk");
}

public static void printStr(String str){
if( str==null || "".equals(str)){
System.out.println("字符串不能为空!");
return;
}
Map<String, Integer> pMap = new HashMap<String,Integer>();
String[] split = str.split("");
for (int i = 0; i < split.length; i++) {
if(!"".equals(split[i]) && pMap.containsKey(split[i])){
pMap.put(split[i], pMap.get(split[i])+1);
} else if(!"".equals(split[i])){
pMap.put(split[i], 1);
}
}
Set<String> keySet = pMap.keySet();
for (String string : keySet) {
System.out.println(string+"出现的次数:"+pMap.get(string));
}
}
}

3.java中split方法的用法

Java中的我们可以利用split把字符串按照指定的分割符进行分割,然后返回字符串数组,下面是string.split的用法实例及注意事项:

java.lang.string.split
split 方法
将一个字符串分割为子字符串,然后将结果作为字符串数组返回。
stringObj.split([separator,[limit]]) 
stringObj
必选项。要被分解的 String 对象或文字,该对象不会被split方法修改。
separator 
可选项。字符串或正则表达式对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。 
limit
可选项。该值用来限制返回数组中的元素个数(也就是最多分割成几个数组元素,只有为正数时有影响)
split 方法的结果是一个字符串数组,在 stingObj 中每个出现 separator 的位置都要进行分解。separator不作为任何数组元素的部分返回。
示例1:
    

String str="Java string split test";
String[] strarray=str.split(" ");
for (int i = 0; i < strarray.length; i++)
System.out.println(strarray[i]);

将输出:
Java
string
split
test

示例2:

String str="Java string split test";
String[] strarray=str.split(" ",2);//使用limit,最多分割成2个字符串
for (int i = 0; i < strarray.length; i++)
System.out.println(strarray[i]);


将输出:
Java
string split test

示例3:

String str="192.168.0.1";
String[] strarray=str.split(".");
for (int i = 0; i < strarray.length; i++)
System.out.println(strarray[i]);

结果是什么也没输出,将split(".")改为split("//."),将输出正确结果:
192
168
0
1

经验分享:
1、分隔符为“.”(无输出),“|”(不能得到正确结果)转义字符时,“*”,“+”时出错抛出异常,都必须在前面加必须得加"//",如split(//|);
2、如果用"/"作为分隔,就得写成这样:String.split("////"),因为在Java中是用"//"来表示"/"的,字符串得写成这样:String Str="a//b//c";
 转义字符,必须得加"//";
3、如果在一个字符串中有多个分隔符,可以用"|"作为连字符,比如:String str="Java string-split#test",可以用Str.split(" |-|#")把每个字符串分开;



网友评论