字符串处理:下划线,多空格变单空格,统计单词出现个数
来源:互联网 发布:只有我知bilibili 编辑:程序博客网 时间:2024/04/29 08:06
假设用户输入的字符串只有小写字母,空格和数字,请编写程序对用户输入的串进行处理,规则如下:
- 把每个单词的首字母变为大写
- 把数字与字母之间用下划线字符”_”分隔开
- 把单词间有多个空格的调整为一个空格
- 统计处理后的字符串每个单词出现次数
输入: we are we 2family2
输出: We Are We 2_family_2
思路:
1. 难点在于找出单词首字母: “空格+字母”标记为单词首字母.
当然得考虑第一个单词,其属于边界情况,要特殊处理
2. 难点在于如何找出数字和字母相连的情况:索引index和index+1对应的字符分别为a-z和0-9;或0-9和a-z
3. 判断单词间有多个空格:str[index]==’ ‘&&str[index+1]==’ ‘,找到之后,删之.
4. 用hashmap:将每个单词放进hashmap中,统计每个单词出现的次数.
可执行代码:
package bb2;import java.util.ArrayList;import java.util.Scanner;public class subString { public static void main(String[] args) { // TODO Auto-generated method stub String s=(new Scanner(System.in)).nextLine(); ArrayList <Character>list=new ArrayList<Character>(); for(int i=0;i<s.length();i++){ list.add(s.charAt(i)); } int index=0; while(index+1<list.size()){ if(index==0&&list.get(index)>='a'&&list.get(index)<='z'){ list.set(index, (char)(list.get(index)-32)); } else if((list.get(index)==' ')&&list.get(index+1)==' '){ list.remove(index+1); index--; } else if(list.get(index)==' '&&list.get(index+1)>='a'&&list.get(index+1)<='z'){ list.set(index+1, (char)(list.get(index+1)-32)); } else if(list.get(index)>='0'&&list.get(index)<='9'&&list.get(index+1)>='a'&&list.get(index+1)<='z'){ list.add(index+1,'_'); index++; } else if(list.get(index+1)>='0'&&list.get(index+1)<='9'&&list.get(index)>='a'&&list.get(index)<='z'){ list.add(index+1, '_'); index++; } index++; } for(int i=0;i<list.size();i++){ System.out.print(list.get(i)); } }}
0 0
- 字符串处理:下划线,多空格变单空格,统计单词出现个数
- 文章中单词个数统计 字符串以空格反转
- 字符串处理(单词首字母大写,数字与字母用下划线隔开,多个空格合并)
- C语言练习题每练 1:字符串统计单词个数,单词由空格隔开
- 字符串的处理 (首字母变大写、数字与字母_分开、多空格变单)
- 用函数统计字符串的单词个数 空格数 字母数
- C语言-统计字符串空格个数
- 统计字符串中字母、数字、空格个数
- 写了个很挫的计算单词个数,以空格隔开,前后空格用Trim处理
- 统计一个字符串中数字,空格,字母的个数!
- 【Python】统计字符串中英文、空格、数字、标点个数
- 统计字符串字母,数字,空格和其他字符个数
- java统计字符串中数字、大小写字母、空格个数
- 输入一行字符,统计其中的单词的个数.各单词之间用空格分隔
- 输入一行字符串,统计其中有多少个单词,单词之间用一个或者多个空格分隔开
- BASE64 加号变空格 处理
- 去除字符串里的空格,统计空格和其中一个字母的个数及仅去除开始的空格
- 统计某个文件中出现的字符个数,数字个数,空格个数,总共有多少行?
- OC中引用swift文件报错误的解决方法
- 数据库 三范式最简单最易记的解释
- 用Nodejs连接MySQL
- 优化onFling()的滑动效果试验
- ASP再认识,利用python作为脚本语言
- 字符串处理:下划线,多空格变单空格,统计单词出现个数
- exec函数
- android解压缩assets里面的压缩文件到sdcard里面
- 小何讲进程: 编写Linux守护进程方法详解
- ZOJ 3944People Counting(思维/技巧/模拟)
- pwnable.kr之mistake
- 70.[Leetcode]Climbing Stairs
- [贪心] BZOJ 2811 [Apio2012]Guard
- Android步进电机