我大概只能写到这里,要求是英语文本文档,判断特殊字符,并按特殊字符的个数递增排列句子
特殊字符是指非字、非数字和非空格字符。
以".""?""!"这些结尾的是一句话
然后特殊字符个数相同的按原来的文本顺序排列
java按照特殊字符计数增长的顺序选择句子。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-sinJack 2022-11-05 15:38关注
特殊字符指你封装的方法?
import java.io.*; public class FileTest { public static void main(String[] args) { //读取文件内容 String path = "E:\\txt.txt"; File file = new File(path); if (!file.exists()){ System.out.println("文件不存在!"); return; } InputStreamReader read = null; BufferedReader bufferedReader=null; StringBuffer sb=null; try { read = new InputStreamReader(new FileInputStream(file)); bufferedReader = new BufferedReader(read); String lineText = null; sb=new StringBuffer(); while((lineText = bufferedReader.readLine())!=null){ sb.append(lineText); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } //分割每句话 String[] strs = sb.toString().split("\\.|\\!|\\?"); sortTxt(strs); System.out.println("排序后的结果:"); for (String s:strs){ System.out.println(s); } } public static void sortTxt(String [] arr){ for(int i=1;i<arr.length;i++) { for(int j=0;j<arr.length-i;j++) { if(getSpecialNum(arr[j])>getSpecialNum(arr[j+1])) { String temp=arr[j+1]; arr[j+1]=arr[j]; arr[j]=temp; } } } } public static int getSpecialNum(String str){ int num=0; char[] chars = str.toCharArray(); for(char c : chars){ if ((c>='0' && c<='9') || (c>='a' && c<='z') || (c>='A' && c<='Z') || c==' '){ }else{ num++; } } return num; } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度
- ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
- ¥15 ETLCloud 处理json多层级问题
- ¥15 matlab中使用gurobi时报错
- ¥15 这个主板怎么能扩出一两个sata口
- ¥15 不是,这到底错哪儿了😭
- ¥15 2020长安杯与连接网探
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么