java代码题 给出一段英文句子,让你把句子里的每个单词(无缩写形式) 出现次数计算出来!
我做的大概是把句子定义String,之后先根据正则判断除空格外的一切非字母的符号都不算,根据空格切分,用什么容器装我不会,之后遍历循环,打印出来。希望懂的人帮忙写出来谢谢...
我做的大概是 把句子定义String,之后先根据 正则判断 除空格外的一切非 字母的符号都不算, 根据空格切分 ,用什么容器装 我不会,之后遍历循环,打印出来。希望懂的人帮忙写出来 谢谢。
感谢,泪奔。
有点疑问 求解释:
能说一下 每一步 都是干什么的吗?谢谢 展开
感谢,泪奔。
有点疑问 求解释:
能说一下 每一步 都是干什么的吗?谢谢 展开
3个回答
展开全部
等我,就写出来
import java.io.*;
import java.util.HashMap;
import java.util.Map.Entry;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
BufferedReader br = new BufferedReader(new FileReader("C:\\text.txt"));//我就不写有界面的了,这个参数就是你英文句子文件所在位置
String sentence = null;
HashMap<String,Integer> map = new HashMap<String, Integer>();
while((sentence = br.readLine())!=null){
sentence = sentence.replaceAll("[\\pP'$']", "");
String[] words = sentence.split(" ");
for(String word:words){
if(map.get(word)==null)
map.put(word, 1);
else map.put(word, map.get(word)+1);
}
}
java.util.Iterator<Entry<String, Integer>> iter = map.entrySet().iterator();
while(iter.hasNext()){
Entry entry = (Entry) iter.next();
System.out.println(entry.getKey()+" "+entry.getValue());
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
import java.io.*;
import java.util.HashMap;
import java.util.Map.Entry;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
BufferedReader br = new BufferedReader(new FileReader("C:\\text.txt"));//我就不写有界面的了,这个参数就是你英文句子文件所在位置
String sentence = null;
HashMap<String,Integer> map = new HashMap<String, Integer>();
while((sentence = br.readLine())!=null){
sentence = sentence.replaceAll("[\\pP'$']", "");
String[] words = sentence.split(" ");
for(String word:words){
if(map.get(word)==null)
map.put(word, 1);
else map.put(word, map.get(word)+1);
}
}
java.util.Iterator<Entry<String, Integer>> iter = map.entrySet().iterator();
while(iter.hasNext()){
Entry entry = (Entry) iter.next();
System.out.println(entry.getKey()+" "+entry.getValue());
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
//Java编程:输入一段英文:
//1、统计一共有多少个单词;
//2、每个单词出现的次数;
//3、按出现次数升或降序排列
package sentencecountword;
import java.util.*;
/**
*
* @author dell
*/
public class SentenceCountWord {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner in = new Scanner(System.in);
System.out.print("plese input a English sentence(输入一个句子): ");
String str = in.nextLine();
String[] word = str.split(" ");
int wordNum = word.length;
int i;
for (i = 0; i < word.length; i++) {
// System.out.println(word[i]); //该行分别输出各个单词。
}
String str1 = str.toUpperCase(); //转化成大写 System.out.println("将该句子转化成大写后为: " + str1);
String str2 = str.toLowerCase(); //转化成小写 System.out.println("将该句子转化成大写后为: " + str2);
System.out.println("这个句子中的单词个数有:" + i + "个。");
for (i = 0; i < word.length; i++) {
int sum = 0;
for (int j = 0; j < word.length; j++) {
if (word[i].equals(word[j])) { //判断两个字符串是否相等用equals, 不能用“==”
sum++;
}
}
System.out.println(word[i] + " 出现的次数为:" + sum + "次。");
}
}
}
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
//Java编程:输入一段英文:
//1、统计一共有多少个单词;
//2、每个单词出现的次数;
//3、按出现次数升或降序排列
package sentencecountword;
import java.util.*;
/**
*
* @author dell
*/
public class SentenceCountWord {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner in = new Scanner(System.in);
System.out.print("plese input a English sentence(输入一个句子): ");
String str = in.nextLine();
String[] word = str.split(" ");
int wordNum = word.length;
int i;
for (i = 0; i < word.length; i++) {
// System.out.println(word[i]); //该行分别输出各个单词。
}
String str1 = str.toUpperCase(); //转化成大写 System.out.println("将该句子转化成大写后为: " + str1);
String str2 = str.toLowerCase(); //转化成小写 System.out.println("将该句子转化成大写后为: " + str2);
System.out.println("这个句子中的单词个数有:" + i + "个。");
for (i = 0; i < word.length; i++) {
int sum = 0;
for (int j = 0; j < word.length; j++) {
if (word[i].equals(word[j])) { //判断两个字符串是否相等用equals, 不能用“==”
sum++;
}
}
System.out.println(word[i] + " 出现的次数为:" + sum + "次。");
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你个提示,用hash。
追问
现在是 想法在 但我代码书写 不到位!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询