`
izuoyan
  • 浏览: 8880413 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

删除并统计数组中重复的字符

 
阅读更多

写一个方法deleteRepeats()用来统计并删除字符数组中某段重复的字符。这个函数有两个参数
第一个参数是数组,第二个参数是指定的范围。如下所示
执行前:
char a[10];
a[0] = 'a';
a[1] = 'b';
a[2] = 'a';
a[3] = 'c';
int size = 4; //size代表数组中已经被填充的范围
size = deleteRepeats(a, size);
当这个函数执行后,
a[0] 的值为 'a';
a[1] 的值为'b';
a[2] 的值为'c';
size等于3,被删除的a[3]不用去关注了。
要求该方法返回重复的字符个数。
假设该数组中的字符都是小写字母。
在main方法中测试该函数。

//实在是妙不可言,都怀疑自己的智商了。呵呵,要是老有那么聪明,那就一切都好办了!

package ch03;

public class DeleteCharArrRepeats {
public static void main(String[] args) {
char[] charArr=new char[10];
charArr[0]='a';
charArr[1]='b';
charArr[2]='c';
charArr[3]='a';
charArr[4]='a';
charArr[5]='z';
int size=6;
System.out.println("原字符数组的实际长度:"+size);
System.out.println(charArr);
System.out.println("-----------------------------");
System.out.println("重复字符的个数为:"+deleteRepeats1(charArr,size));
System.out.println(charArr);
}
/**
* 第1种删除字符数组内重复字符的方法, 有点像排序, 很小很强大
*/
public static int deleteRepeats1(char[] charArr,int size) {
int repeatCount=0;
for(int i=0;i
for(int j=i+1;j
if(charArr[j]==0){
break;
}
if(charArr[j]==charArr[i]){ //1.abc0az
charArr[j]=0; //2.abc00z
repeatCount++; //3.abc0z0
} //4.abcz00
if(charArr[j-1]==0){
charArr[j-1]=charArr[j];
charArr[j]=0;
}
}
}
return repeatCount;
}
/**
* 第2种删除字符数组内重复字符的方法, 以字符串作媒介,替换其中的重复字符为空,再回传
*/
public static int deleteRepeats2(char[] charArr,int size) {
String str=new String(charArr);
for(int i=0;i
String frontStr=str.substring(0,i+1);
String backStr=str.substring(i+1);
String seekChar=str.substring(i,i+1);
backStr=backStr.replace(seekChar, "");
str=frontStr+backStr;
}
//此处无法直接赋值, 折腾我一晚上
char[] tempArr=str.toCharArray();
for(int i=0;i
charArr[i]=i
}
return str.length()-1;
}
}

分享到:
评论

相关推荐

    C语言字符串处理函数

    int del substr char res int pos int len 从res的pos位置开始删除len个字符 1成功 0失败 int insert substr char res char pos char const substr 在res的pos前插入substr 1成功 0失败 int strreplace char res ...

    c语言字符串分割,截取,子串查找,插入,删除

    int del_substr(char *res,int pos,int len)//从res的pos位置开始删除len个字符,1成功,0失败 int insert_substr(char *res,char pos,char const *substr)//在res的pos前插入substr,1成功,0失败 int strreplace(char ...

    文档编辑器的设计与实现

    (3)查找与替换功能:能够查找任意一个字符串在文档中出现的次数,并可以选择全部或有选择地将其替换为另一个字符串。 (4)显示功能:编辑完成后可以显示编辑后的文档。 (5)抽取功能:重复单词只保留一份拷贝,...

    LeetCode:刷 LeetCode

    删除数组中指定元素返回新数组的长度 主字符串中找子字符串的索引 找目标数插入的索引 统计出现的数字和写出来 求数组中子数组的最大和LastWordLength计算最后一个单词的长度PlusOne数组加一mediumAddTwoNumbers 以...

    我整理的VBA 自定义函数大全 共138页

    58.统计数组中非重复数据个数 59.摘取子字符串 60.计算20000余个汉字的笔画 61.删除当前工作表中的全部超连接 62.取得相近数据 63.提取定串中汉字 64.搜索重复数据(选定范围) 65.字符型转数字型 66.小写人民币转大写...

    PHP开发实战1200例源码

    实例125 统计数组元素个数 156 实例126 向数组中添加元素 156 实例127 将数组中指定索引位置的元素替换 157 实例128 获取数组中最后一个元素 158 实例129 去除数组中的重复元素 158 实例130 字符串与数组的转换 159 ...

    《javaScrip开发技术大全》源代码

    • sample25.htm 统计一个字符串在另一个字符串中出现的次数 • sample26.htm 使用正则表达式搜索子字符串 • sample27.htm 替换使用字符串查找到的子字符串 • sample28.htm 扩展...

    构建大顶堆leetcode-LeetCode:ヾ(◍°∇°◍)ノ゙小黄的LeetCode刷题之路

    字符流中第一个不重复的字符串 链表 栈和队列 概述 后进先出 堆 哈希表 Algorithm 算法 排序 快速排序 选择一个目标值,比目标值小的放左边,比目标值大的放右边,目标值的位置已排好,将左右两侧再进行快排。 归并...

    leetcode数组下标大于间距-everyday-algorithm:每天一个算法题,好好学习,天天向上-->项目已迁移到https://g

    s2 中删除某些字符使其变为 s1,则称字符串 s1 可以从字符串 s2 获得。例如,根据定义,"abc" 可以从 “abdbec” 获得,但不能从 “acbbe” 获得。 现在给你两个非空字符串 s1 和 s2(每个最多 100 个字符长)和...

    LeetCode-Problems:每日LeetCode挑战

    1047删除字符串中的所有相邻重复项 26从排序数组中删除重复项 80从排序数组II中删除重复项 83从排序列表中删除重复项 674最长连续递增子序列 925长按的名称 111二叉树的最小深度 596堂课,超过5名学生 290字型 2020...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例125 统计数组元素个数 156 实例126 向数组中添加元素 156 实例127 将数组中指定索引位置的元素替换 157 实例128 获取数组中最后一个元素 158 实例129 去除数组中的重复元素 158 实例130 字符串与数组的转换 159 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例125 统计数组元素个数 156 实例126 向数组中添加元素 156 实例127 将数组中指定索引位置的元素替换 157 实例128 获取数组中最后一个元素 158 实例129 去除数组中的重复元素 158 实例130 字符串与数组的转换 159 ...

    《C#经典编程220例》.(明日科技).【带书签】-共3部分

    实例085 自动删除textbox控件中的非法字符 139 实例086 在richtextbox控件中替换文本文字 141 实例087 利用richtextbox控件实现文字定位与标示 142 实例088 将数据表中的字段添加到combobox控件中 143 实例089 对...

    Java面试宝典2010版

    6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序: 7、写一个Singleton出来。 8、递归算法题1 9、递归算法题2 10、排序都有哪几种方法?请列举。用JAVA实现一个...

    明日科技C#开发入门及项目实战

    实例055 不改变长度删除数组中的元素 实例056 删除数组元素后改变其长度 第6章 c#面向对象程序设计 实例057 创建类的对象 实例058 使用构造函数 实例059 通过定义方法求一个数的平方 实例060 使用重载方法实现不同...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例010 在Eclipse项目中编程输出字符表情 15 实例011 为Eclipse添加新的JDK环境 17 实例012 设置Eclipse中文API提示信息 18 实例013 为项目添加类库 20 实例014 使当前项目依赖另一个项目 21 1.3 界面设计器 22 ...

Global site tag (gtag.js) - Google Analytics