2017年初编码标题之一:通过关键字查找在文字中出现的次数并按照降序的排列进行展示
2017-05-26 16:28
483 查看
大家好,我是进入java 1年工作经验的小白,在2017年去上海面试中出现一个笔试题而且还是现场的编码题 被难住了,记住问题后回家开始编码去实现,题目是:
通过一些 关键字 在
大串的文字中 进行查找 并 统计 出现的 次数 然后按照 降序 进行打印
以下就是我自己编写的代码:
package sadf;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;
public class Test2 {
public static void main(String[] args) {
String[] str2 = {"今天", "回家", "天气", "开心"};
String str = "今天天气很好,如果有人看到我的博客我会非常开心真的会很开心,今天我也真是很开心的分享我的经验,请大神门不要骂我,我回家了,祝大家天天开心!";
Test2.counts(str, str2);
}
/**
* 遍历并排序
*/
public static void counts(String str, String[] str2) {
Map<String,Integer> map = search(str, str2);
List<Entry<String, Integer>> list = new ArrayList<Entry<String, Integer>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
@Override
public int compare(Entry<String, Integer > o1, Entry<String, Integer > o2) {
// o1 - o2 为升序 相反降序
return (o2.getValue() - o1.getValue());
}
});
for (Entry<String, Integer> entry : list) {
// 打印
System.out.println(entry.toString());
}
}
/**
* 用来统计保存关键字及出现的次数
*/
public static Map<String, Integer> search(String str, String[] str2) {
Map<String, Integer> map = new TreeMap<String, Integer>();
for (int i = 0; i < str2.length; i++) {
int count = 0;// 统计出现的次数
int num = 0;// 出现的位置,并查找存在对应的字符
int temp = 0;// 查询多个匹配的文字
while ((str.length() - temp) >= 1) {
num = str.indexOf(str2[i], temp);
if (num == -1) {
temp = str.length();
} else {
temp = num + 1;
count++;
map.put(str2[i], count);
}
}
}
return map;
}
}
希望在看我这篇文章的时候能够给你一个参考,如果能更加优化或者更好的代码请联系我或者回复给我,谢谢!
通过一些 关键字 在
大串的文字中 进行查找 并 统计 出现的 次数 然后按照 降序 进行打印
以下就是我自己编写的代码:
package sadf;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;
public class Test2 {
public static void main(String[] args) {
String[] str2 = {"今天", "回家", "天气", "开心"};
String str = "今天天气很好,如果有人看到我的博客我会非常开心真的会很开心,今天我也真是很开心的分享我的经验,请大神门不要骂我,我回家了,祝大家天天开心!";
Test2.counts(str, str2);
}
/**
* 遍历并排序
*/
public static void counts(String str, String[] str2) {
Map<String,Integer> map = search(str, str2);
List<Entry<String, Integer>> list = new ArrayList<Entry<String, Integer>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
@Override
public int compare(Entry<String, Integer > o1, Entry<String, Integer > o2) {
// o1 - o2 为升序 相反降序
return (o2.getValue() - o1.getValue());
}
});
for (Entry<String, Integer> entry : list) {
// 打印
System.out.println(entry.toString());
}
}
/**
* 用来统计保存关键字及出现的次数
*/
public static Map<String, Integer> search(String str, String[] str2) {
Map<String, Integer> map = new TreeMap<String, Integer>();
for (int i = 0; i < str2.length; i++) {
int count = 0;// 统计出现的次数
int num = 0;// 出现的位置,并查找存在对应的字符
int temp = 0;// 查询多个匹配的文字
while ((str.length() - temp) >= 1) {
num = str.indexOf(str2[i], temp);
if (num == -1) {
temp = str.length();
} else {
temp = num + 1;
count++;
map.put(str2[i], count);
}
}
}
return map;
}
}
希望在看我这篇文章的时候能够给你一个参考,如果能更加优化或者更好的代码请联系我或者回复给我,谢谢!
相关文章推荐
- python字典分别按照key和value升序或者降序排列--以给定一个含有重复元素的数组list,按照其出现次数大小降序输出
- 通过awk统计history中使用命令,并按照统计的次数降序排列,并只显示其中20行
- 随机产生50个30到35的整数,统计每个数字出现的次数(TreeMap实现),输出时按照数字的降序排列,并且统计出现次数最多的数字和它的次数。
- 请通过代码实现以下功能:输入一个5X5的二维数组,将数组进行排序,其中一维数组按照平均值降序,一维数组内部升序排列。
- 通过操作指针,与指针做函数参数'实现字串在主串中出现的次数,然后将出现的部分按照要求进行替换
- (使用STL自带的排序函数进行编程7.3.14)UVA 10062 Tell me the frequencies!(求一个字符出现的次数(包括字母和数字)&&按出现的次数降序)
- 2014华为机试题——取出整型数据中出现次数最多的元素,并按照升序排列返回
- 输入一个5X5的二维数组,将数组进行排序,其中一维数组按照平均值降序,一维数组内部升序排列。
- 高效统计从控制台输入的英文单词出现的次数,按照从高到低进行统计显示
- 从文本文件中读取随机数,并打印出数字所出现的次数,按次数降序排列
- mybatis环境搭建,对表进行增删改查(通过id,查找所有行(list返回),通过两个关键字进行查找)
- 用面向对象解决:输入一个5X5的二维数组,将数组进行排序,其中一维数组按照平均值降序,一维数组内部升序排列
- 字符串操作 要求完成字串在主串中出现的次数,然后按照要求对字符串进行替换
- 【通过操作指针,与指针做函数參数'实现字串在主串中出现的次数,然后将出现的部分依照要求进行替换 】
- 输入几个数 求出里面出现的个位数字次数最大 并按照从小到大的顺序排列出
- 对一段文字进行分词, 查找关键字然后关键字词频统计
- 通过awk对文本文件的单词出现次数进行排序
- linux grep (linux查找关键字在php出现的次数)
- iOS下单签名串之字典通过key值进行降序排列
- 将一段(英文)按照字符出现的频率进行倒序排列