将字符串重复的字符替换成单个字符的正则表达式

java怎么样将字符串中重复的字符替换成单个字符的正则表达式

5个回答

 String str = "abaabcaaaad";
        String ret = str.replaceAll("[a]+", "a");//替换字符a
        System.out.println(ret);

char[] arr = new char[s.length()];
int j = 0;
outer:
for(int i=0;i<s.length();i++) {
char c = s.charAt(i);//字符串的每个字符
for(int k=0;k<j;k++) {//在j之前找重复
if(c == arr[k]) {//找到重复
continue outer;//跳到i++处理下一个
}
}
arr[j++] = c;//没有重复,放入j位置,j后移
}
arr = Arrays.copyOf(arr, j);
s = new String(arr);

zengyang105
Tao-yangZeng 我觉得编一个正则表达式来匹配 更好一点呢。。我试试您的方法 谢谢
大约 4 年之前 回复
zengyang105
Tao-yangZeng 我觉得编一个正则表达式来匹配 更好一点呢。。我试试您的方法 谢谢
大约 4 年之前 回复

danielinbiti给的答案很好,如果不知道哪个字符是重复的,可以遍历一遍,如果前后两个字符相等,即可将其作为需要修改的a存储在list,然后再对list中所有值执行上述操作。

这样 只 适用于 单个字符重复啊,如果多个字符重复呢

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
怎么把一段字符串分解成单个字符
怎么把一段字符串分解成单个字符rn如:中华人12民共abc这个串rn我要分成:rn中rn华rn人rn1rn2rn民rn共rnarnbrncrn这rn个rn串
CString将指定位置的字符替换为另一个字符
如题,我想将形如"2011070712181950_2_2.jpg.dB" 变成"2011070712181950_1_2.jpg.dB", 我的想法是先用s.find("_")找到第一个"_"的位置,从而得到它后面字符的位置,然后。。。就不会了
将字符串的后几个字符去掉
就是把文件名中的后缀去掉。
怎样将php里的汉字字符串分割成单个字符?
如将“技术问题”分割成“技”,“术”,“问”,“题”,该怎样实现?
中文utf8字符串,分割成单个字符构成的数组
rn$str是从mysql里取出来的utf8中文字符串(夹有英文),现要分割成单个字符构成的数组$ar。rn试过以下3种办法全把中文分成了乱码:rnrn1、直接把$str当数组用rn2、$ar = str_split($str);rn3、$ar = preg_split( '// ', $str, -1, PREG_SPLIT_NO_EMPTY);
【求助】 如何将中文字符串分割成单个字符
[code=PHP]rn $county="大中华区";rn rn echo "".$ci=iconv_strlen($county,"UTF-8")."";rn for($j=0;$j<$ci;$j++)rn echo $e.=iconv_substr($county,$j,$j);rn rnrnrnrn[/code]
简单编码(java语言把数字转换成单个字符)
简单编码 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 将一串文本译成密码,密码的规律是: 将原来的小写字母全部翻译成大写字母,大写字母全部翻译成小写字母,数字的翻译规律如下: 0——>9 1——>8 2——>7 3——>6 4——>5 5
java中如何把数字转换成单个字符
java中如何把数字转换成单个字符,注意是单个字符,比如将数字4转换成单个字符c=‘4’,n再调用s.setChar(index,c);
java 字符串拆分成单个字符放到 list 集合
解决方法: 例如把“我是谁”拆开放到list中 public static void main(String args[]) { String verify="我是谁"; List&lt;String&gt; list= Stream.iterate(0, n -&gt; ++n).limit(verify.length()) ...
怎么样把一个字符串分割成单个字符数组?
比如:string mystring=“abcd”;rn分割成‘a’,‘b’,‘c',’d'字符数组rn有没有比较节省内存的方法
怎么将字符串中的部分字符替换掉?
sdkfjksdjfksdfdsfdsrnrn怎么将"<"到">"中的 替换成#32
正则表达式的问题(字符替换)
现有文本如下rnrn"aa", "", "ccsadfd","东","dsjl[color=#FF0000]"[/color]fghgfh[color=#FF0000]"[/color]jkldsf;rn"bb","繁大","sdf","1212","78455[color=#FF0000]"[/color]sdfsdfsdf[color=#FF0000]"[/color]的反抗;rnrnrn如何把 类似"fghgfh", "sdfsdfsdf" 这些字段里的里面的双引号去掉 fghgfh, sdfsdfsdfrnrnrnrn这些字符前面没有逗号,后面也没有逗号,怎样能够将他们的去掉?rnrn需要用到正则表达式吗,该怎么写呢?rnrn谢谢大家
正则表达式中的字符替换
不好意思,刚才结帖后,发现问题没解决。rnhttp://community.csdn.net/Expert/topic/5391/5391375.xml?temp=6.460208E-02rnrnfunction htmlspecialchars_uni($text, $entities = true)rnrnrnreturn str_replace(rn// replace special html charactersrnarray('<', '>', '"'),rnarray('<', '>', '"'),rnpreg_replace(rn// translates all non-unicode entitiesrn'/&(?!' . ($entities ? '#[0-9]+' : '(#[0-9]+|[a-z]+)') . ';)/si',rn'&',rn$textrn)rn);rnrnrnrnzhys9回答:rn不需要改造了。....rn$s = ' <"测试">';rn$s = htmlspecialchars_uni($s, false);rnecho $s;rnrn但我测试没成功,其仍是将&nbsp转换成&&nbsprnrn能不能帮我改一下上面的函数,让其不处理&字符,但<', '>', '"' 这3个正常替换。
【python】字符串中多个字符替换为1个字符
from functools import reduce def replace_char(s, oldChar, newChar ): return reduce(lambda s, char: s.replace(char, newChar), oldChar, s) s = 'aaa,bbb/ccc|ddd\tzzz?ooo' new_s = replace_char(s, ',...
如何将一个字符串中的特定字符替换为另一个个字符呢?
-
正则表达式字符替换的问题
比如字符串3412123123[@F_1@]adsf312eafagaet[@5@]1231241232[@F_21@]123123rnrn现在我想把[@替换成
小于10个字符的字符串的正则表达式是什么?
小于10个字符的字符串的正则表达式是什么?
字符串中的部分字符替换
2016/03/21 17:20:51替换为2016-03-21 17:20:51 由上是把字符串中的字符 ‘/’ 转换为 ‘-’ char szTime[32] = "2016/03/21 17:20:51" for(int k = 0; k < strlen(szTime); k ++) { if('/' == szTime[k]) { szTime[k] = '-'
将一个字符串,左旋N个字符
将一个字符串,左旋N个字符
将一个字符串向左旋转n个字符
 方法一:一个一个翻转,但有循环嵌套,效率比较低。 #include #include #include void revovle(char *str,int n) {  int len=strlen(str);  int i;  char temp;  while(n)  {   temp=str[0];   for(i=0;i   {       str[i]
Bailian2700 字符替换【字符串】
字符替换 总时间限制: 1000ms 内存限制: 65536kB 描述 把一个字符串中特定的字符全部用给定的字符替换,得到一个新的字符串。 输入只有一行,由一个字符串和两个字符组成,中间用单个空格隔开。字符串是待替换的字符串,字符串长度小于等于30个字符,且不含空格等空白符; 接下来一个字符为需要被替换的特定字符; 接下来一个字符为用于替换的给定字符。 输
字符串中的 字符替换
我现在有一些如这样的字符串rnrn[3]/([2]*[2])rnrn其中[3] [2] 分别对应我系统里的3号和2号变量 $e3 和$e2rnrn希望将上面的式子通过程序转换成如下字符串rnrn$e3/($e2*$e2)rnrn这样就可以用eval计算了。rnrn请问如何实现这个转换?有什么方法。rnrn
将字符串中第i个字符删除?
xx="abc def";rni=3;rnrn
Java 高级算法——字符串字符替换
题目一:在字符串中例如public static String info = "we are friend";将空格替换为888,例如 public static String ifo ="we888are888friend"; 解题思路: java实现 运行结果 ...
将字符串转成json格式的正则表达式
查找目标    ^(.*):\s(.*)$  替换为   '\1':'\2'^和$表示匹配一行,\s表示空格在sublime和notepad++都试过是可行的,例如,替换前:Host: fanyi.youdao.comConnection: keep-aliveContent-Length: 210Accept: application/json, text/javascript, */*; q=...
高手进来,正则表达式字符替换问题!
代码如下:rn rnstring[] key = "杭州眼镜店","眼镜" ; //关键字rn string Keywords = "杭州眼镜店、眼镜、中国眼镜、杭州眼镜店里? 杭州眼镜店、眼镜";rn string Result = string.Empty;rn for (int i = 0; i < key.Length; i++)rn rn Regex regex = new Regex(string.Format(@"0[^<\/a>]",key[i]), RegexOptions.IgnoreCase); rn Keywords = regex.Replace(Keywords, ""+ key[i] +"",2); rn rnrn Response.Write(Keywords);rnrn问题在于查找出关键字后不包含的匹配,再替换,问题是替换时会把找到的最后一个字替换掉,如替换“眼镜”会把“杭州眼镜店“的店字替换掉,问题在于排除[^<\/a>]这里,如果写个正则表达只替换关键字部分呢?rnrn谢谢!
求一任意字符替换正则表达式?
c="af345g中华人民共和国235457wergdsfgrtutyity中华全国妇女联合会" 任意字符rn当c超过20个字符,每20个字符后面加一个vbcrlf(回车符),如果不超过就不加rn变成如下格式:rnrnaf345g中华人民共和国235457rnwergdsfgrtutyity中华全rn国妇女联合会
js利用正则表达式进行字符替换
例一:把所有逗号“,”转换成换行。 var reg = new RegExp(",", "g");//正则表达式,第一个参数是目标对象,第二个参数g,表示全部替换。 str.replace(reg, "\r\n"); 例二:把换行、空格、Tab替换成逗号。 str.replace(/\r/g, ",").replace(/\n/g, ",").replace(/\s+/g,
正则表达式,关于特殊字符替换的问题
我想将strContent = " my class"rn中的my后面的class替换成classrn该怎么写。表格是任意的不一定是现在这样子,但是都是替换中间的内容,不能把html标记中的替换掉。谢谢
oracle 正则表达式,特殊字符替换问题
1、功能替换掉[内容],这样的内容。rn2、替换掉[]保留"内容".rnrnSelect REGEXP_REPLACE('[TEST]', '(\[)(\w*)(\])', '') from dual; ---这个oKrnSelect REGEXP_REPLACE('[TEST *< ]', '(\[)(\w*)(\])', '') from dual;---特殊字符就不行rn rnSelect REGEXP_REPLACE('[AND PP.INTEGRAL>=NVL(#CON_PARAM#,0)]', '(\[)(\w*)(\])', '') from dual;rnrnrnrn急,请高手指教
请教一个正则表达式的字符替换问题:
如果arrayA=new Array(1,2,3,4,5),stringB="aaa★dwer★xx★dfsde★erwfd★sadf",现在我要做的是把数组arrayA中的1替换成stringB中的第一个★,数组arrayA中的2替换成stringB中的第二个★,数组arrayA中的3替换成stringB中的第三个★,...如此循环,该如何做?要求数组长度不限于5个,可能是很多。
如何将字符串中重复出现的某字符用其他字符替换
如何将字符串中重复出现的某字符用其他字符替换
怎样将字符串里的一个字符替换成一个字符串?
怎样将字符串里的一个字符替换成一个字符串?
将字符串从m个字符开始由另一个字符串替代
#include<stdio.h>int main() { char str[100],m,n,i,substr[50]; printf("input str:\n"); scanf("%s",str); printf("substr:\n"); scanf("%s",substr); printf("place:\n"); scanf("%d"
在JS中,使用正则表达式,用指定字符替换字符串前后空格
function replaceLeadTrailChar(str, ch) {         var str1 = str;         var regx1 = new RegExp("^ +");  // 此处的“ ”(空格)不能用“\s”来代替,否则会把全角空格也替换掉         var str2 = "";         var str3 = str1.replace
正则表达式处理重复字符串时出现的问题
定义一个组,引用第一个组(因为“+”,所以处理成 aaaaaaa(......全是a))所有含有a的串都被切定义两个组,引用第一个组(因为“+”,处理成bbbbbbbb{......全是b})在所有字符串中,以a开始,与b相连的子串中,对b的重复进行切割。再来一个与上面对比:我把上面的主串改了一下,就显而易见了。===========================================...
求一个正则表达式,也是字符串重复的问题
比如有一个字符串rnString a = "SN1,SN1,SN2,SN1";rn用","隔开的字符串数目不固定rnrn要求去除里面的重复因子,比如,,,输出"SN1,SN2"
求替换重复出现字符串的正则表达式
我要求只能输入:ABCDEFGrnrn输入ABCA则自动替换成BCA。rn输入ABACA则替换成BCArn不能让他有重复的,并且最后出现的字符串有效,如何实现?
怎样将一句汉字 拆分成单个字?
怎样将一句汉字 拆分成单个字,请高手解答。最好用php实现。
js字符替换将 替换成/n
显示在textarea,正则如何写rnmystring.replace(/ /g, '\n')rn不行怎么弄?
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池