字符相关算法(二)
来源:互联网 发布:淘宝客服聊天话术技巧 编辑:程序博客网 时间:2024/05/29 18:20
将字符串中所有的*移动到左边
1.使用冒泡排序的方式,冒泡是稳定的,可以保证字符的顺序
public void removeLeftAndRight(char[] a) { for(int i=0;i<a.length;i++) { for (int j=a.length-1;j>i;j--) { if(a[j]=='*'){ char temp=a[j-1]; a[j-1]=a[j]; a[j]=temp; } } } }
2.从后往前扫描遇到字符就放到数组后面相应的位置,前面剩余的位置,补上*即可
public void removeLeftAndRightn(char[] a) { int len=a.length; for(int i=len-1;i>=0;i--) { if(a[i]!='*') { a[--len]=a[i]; } } for(int i=len-1;i>=0;i--) { a[i]='*'; } }
统计字符出现的次数
利用数组,数组下标代表字母,如0代表A,依次类推。然后存储出现的次数
public void countChar(char[] a) { int[] result=new int[52]; for (int i=0;i<a.length;i++) { result[a[i]-'A']++; } for(int i=0;i<result.length;i++) { System.out.println((char) ('A'+i)+":"+result[i]); } }
压缩字符串中的空格,如果有两个空格则压缩成一个空格
利用两个指针,如果第一个指针遇到了空格,则判断第二指针是否是空格,直到第二个指针不为空格,则将前一个指针的值放到新数组里
public String compressBlank(char[] a) { if(a==null) { return a.toString(); } StringBuilder stringBuilder=new StringBuilder(); for (int i=0;i<a.length;i++) { //a[i]是空格才进一步判断,否则直接放到新数组里 if(a[i]==' ') { //碰到连续的空格,则继续 if((i+1)<a.length&&a[i+1]==' ') { continue; }else { stringBuilder.append(a[i]); } }else { stringBuilder.append(a[i]); } } return stringBuilder.toString(); }
0 0
- 字符相关算法(二)
- 素数相关算法(二)
- 字符相关算法
- 算法之左旋转字符(二)
- 图论相关算法汇总(二)
- (二)算法相关概念
- 排序及相关二(算法导论二章,折半)
- html中字符编码的确定算法(二)
- 排序及相关一(算法导论二章)
- STL算法库-排序和相关操作(二)
- 【算法相关】高频词汇统计系统(二)
- 机器学习相关算法的大总结(二)
- 几道题目(二)---------字符流和字节流的区别、使用场景、相关类
- 字符分割(二)
- 算法相关——Java排序算法之冒泡排序(二)
- 字符交替(算法)
- MFC相关(二)
- 图像相关(二)
- JS学习函数小TIP学习笔记
- ios微信跳转页面后,点击返回无效
- loadView 和 viewDidLoad 区别
- JS prototype与__proto__的联系与区别
- Android 单例Toast优化
- 字符相关算法(二)
- C++11
- UVa 814 The Lettter Carrier's Rounds
- nodejs express框架 中app.js
- ASPxGridView 导出和部分属性设置
- Android Studio:Error:(1, 0) Your project path contains non-ASCII characters. This will most likely c
- Handler事件分发机制
- 自定义用作头像的选择器
- Java Swing简单控件实例(JButton,JLabel,JMenuBar,JComboBo)