社区
Web 开发
帖子详情
文字替换问题
zity_chow
2011-12-30 10:42:38
String str = "一二三四一二三四一二三四一二三四";
str = str.replace( "一", "零" );
如果这样,会把所有的“一”都替换成“零”。
请问怎样才能是替换前几个或者后几个“一”,或者替换第N个“一”
...全文
207
22
打赏
收藏
文字替换问题
String str = "一二三四一二三四一二三四一二三四"; str = str.replace( "一", "零" ); 如果这样,会把所有的“一”都替换成“零”。 请问怎样才能是替换前几个或者后几个“一”,或者替换第N个“一”
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
达布留西
2012-01-04
打赏
举报
回复
我觉得我们都不明白楼主什么意思,楼主你自己什么需求,自己改改吧,你的变动太大了
zity_chow
2012-01-04
打赏
举报
回复
如果替换的不是一个字,而是词组或者句子呢?[Quote=引用 19 楼 zhangguicheng12 的回复:]
那就把String 转换成数组
public static void main(String[] args) {
String shuzi="一二三四一二三四一二三四一二三四";
String[] shuzis=shuzi.split("");
String houshuzi="";//替换全部
for(int i=1;i<shuzis.length;i++){
if("一".e……
[/Quote]
张正
2012-01-02
打赏
举报
回复
public static String maths(String shuzi,int forward){
String[] shuzis=shuzi.split("");
String houshuzi="";//替换
int oneForward=0;//前面几个
if(forward!=0){
for(int i=1;i<shuzis.length;i++){
if(oneForward<forward){
if("一".equals(shuzis[i].toString())){
houshuzi+=shuzis[i].replace("一", "零");
oneForward++;
}else{
houshuzi+=shuzis[i];
}
}else{
houshuzi+=shuzis[i];
}
}
}
return houshuzi;
}
public static void main(String[] args) {
String shuzi="一二三四一二三四一二三四一二三四一二三四";
System.out.println(Test.maths(shuzi,2));//零二三四零二三四一二三四一二三四一二三四
}
向后也一样 !LZ自己发散
张正
2012-01-02
打赏
举报
回复
那就把String 转换成数组
public static void main(String[] args) {
String shuzi="一二三四一二三四一二三四一二三四";
String[] shuzis=shuzi.split("");
String houshuzi="";//替换全部
for(int i=1;i<shuzis.length;i++){
if("一".equals(shuzis[i].toString())){
houshuzi+=shuzis[i].replace("一", "零一");
}else{
houshuzi+=shuzis[i];
}
}
System.out.println(houshuzi);//零一二三四零一二三四零一二三四零一二三四
}
[Quote=引用 13 楼 zity_chow 的回复:]
引用 9 楼 licip 的回复:
String str = "一二三四一二三四一二三四一二三四";
for(int i = 0;i<3;i++){
str = str.replaceFirst( "一", "零" );
}
System.out.println("str:" + str);
这个如果我想替换的是:将“一”替换成“零一”呢
那么是不是变成“零零零一二三四一……
[/Quote]
zity_chow
2012-01-02
打赏
举报
回复
[Quote=引用 16 楼 cs123456789dn 的回复:]
我也觉得找索引然后在替换这个是一个万能的方法
[/Quote]
请问怎样找索引?
zity_chow
2012-01-02
打赏
举报
回复
[Quote=引用 15 楼 jaygo311 的回复:]
可以先检索,在替换,也可以将字符串按照所要替换的字符进行截取
[/Quote]
具体要怎样做,可以说清楚点吗?
Super_Ninja
2012-01-01
打赏
举报
回复
上面的这些写法都缺乏灵活性吧,只有在你非常清楚字符串的结构的情况下并且需要知道替换几个才行这样写还行,总觉得不好.
[Quote=引用 13 楼 zity_chow 的回复:]
引用 9 楼 licip 的回复:
String str = "一二三四一二三四一二三四一二三四";
for(int i = 0;i<3;i++){
str = str.replaceFirst( "一", "零" );
}
System.out.println("str:" + str);
这个如果我想替换的是:将“一”替换成“零一”呢
那么是不是变成“零零零一二三四一……
[/Quote]
对java有感觉
2012-01-01
打赏
举报
回复
我也觉得找索引然后在替换这个是一个万能的方法
jaygo311
2012-01-01
打赏
举报
回复
可以先检索,在替换,也可以将字符串按照所要替换的字符进行截取
zity_chow
2011-12-31
打赏
举报
回复
[Quote=引用 9 楼 licip 的回复:]
String str = "一二三四一二三四一二三四一二三四";
for(int i = 0;i<3;i++){
str = str.replaceFirst( "一", "零" );
}
System.out.println("str:" + str);
[/Quote]
这个如果我想替换的是:将“一”替换成“零一”呢
那么是不是变成“零零零一二三四一二三四一二三四一二三四”了?
arvon009
2011-12-30
打赏
举报
回复
下面是替换前几个“一”的算法,若替换后几个“一”则需反循环
public String replaceWithSpecificString(String orignal, String oldStr,
String newStr, int times) {
String replce = "";
for (int i = 0; i < orignal.length(); i++) {
if (times > 0) {
if (orignal.charAt(i) == oldStr.charAt(0)) {
boolean match = true;
for (int j = 1; j < oldStr.length(); j++) {
if (orignal.charAt(i + j) != oldStr.charAt(j)) {
match = false;
break;
}
}
if (match) {
replce += newStr;
i += (oldStr.length() - 1);
times--;
}
} else {
replce += orignal.charAt(i);
}
} else {
replce += orignal.charAt(i);
}
}
return replce;
}
这是替换第N个‘一’的算法
public String replaceWithSpecificString(String orignal, String oldStr,
String newStr, int N) {
String replce = "";
for (int i = 0; i < orignal.length(); i++) {
if (N > 0) {
if (orignal.charAt(i) == oldStr.charAt(0)) {
boolean match = true;
for (int j = 1; j < oldStr.length(); j++) {
if (orignal.charAt(i + j) != oldStr.charAt(j)) {
match = false;
break;
}
}
if (match) {
if(N == 1) {
replce += newStr;
} else {
replce += orignal.charAt(i);
}
i += (oldStr.length() - 1);
N--;
}
} else {
replce += orignal.charAt(i);
}
} else {
replce += orignal.charAt(i);
}
}
return replce;
}
zity_chow
2011-12-30
打赏
举报
回复
[Quote=引用 3 楼 huai__ye 的回复:]
采用字符串截取在替换的方式展开;
如: String str = "一二三四一二三四一二三四一二三四";
str= str.substring(0, 6).replace("一", "零")+str.substring(6, str.length());
结果:零二三四零二三四一二三四一二三四
[/Quote]
如果“一”的位置不确定呢?
孤雨
2011-12-30
打赏
举报
回复
自己随便指定个范围,然后就可以换了。应该没有现成的方法。
licip
2011-12-30
打赏
举报
回复
String str = "一二三四一二三四一二三四一二三四";
for(int i = 0;i<3;i++){
str = str.replaceFirst( "一", "零" );
}
System.out.println("str:" + str);
我嘞个去
2011-12-30
打赏
举报
回复
当然你也可以找索引 想换那个 换那个!
funfenffun
2011-12-30
打赏
举报
回复
String里面封装了一个replaceFirst()方法,替换字符串的第一个匹配,lz可以仿着这个的源码来写
应该没有什么封装好的方法,否则replaceFirst()就是鸡肋了
zysnba
2011-12-30
打赏
举报
回复
采用字符串截取在替换的方式展开;
如: String str = "一二三四一二三四一二三四一二三四";
str= str.substring(0, 6).replace("一", "零")+str.substring(6, str.length());
结果:零二三四零二三四一二三四一二三四
懒到变成虫
2011-12-30
打赏
举报
回复
这个前几个、后几个有什么规律吗?这样的需求只能自己定位进行查找替换了。
YeHuai1991
2011-12-30
打赏
举报
回复
采用字符串截取在替换的方式展开;
如: String str = "一二三四一二三四一二三四一二三四";
str= str.substring(0, 6).replace("一", "零")+str.substring(6, str.length());
结果:零二三四零二三四一二三四一二三四
zysnba
2011-12-30
打赏
举报
回复
要不就安装下标来替换
加载更多回复(1)
python中json串特殊字符
替换
问题
在json串中发现特殊字符”\n”,使用str.replace("\n","")进行
替换
,在终端测试ok。但是脚本运行(从文件中读取json串)一直不能成功,后使用str.replace("\\n&...
js中字符串的
替换
js中字符串的
替换
在js中字符串全部
替换
可以用以下方法: 两种区别:正则&常规 str.replace("需要
替换
的字符串","新字符串") str.replace(/需要
替换
的字符串/g,"新字符串&...
vue字符串
替换
,vue将字符串内指定字符
替换
,vue字符串
替换
函数.replace如何使用
vue字符串
替换
,vue将字符串内指定字符
替换
,vue字符串
替换
函数.replace如何使用
js字符串
替换
它也是用于在字符串中
替换
指定的子串,但是相比于replace()方法,它可以直接
替换
所有匹配的子串,而不需要使用正则表达式。它接受两个参数:第一个参数是需要
替换
的子串或用于匹配子串的正则表达式,第二个参数是...
html制作字符批量
替换
工具,字符批量
替换
工具
字符批量
替换
工具是一款简单易用的能够将文件或者文件夹内的TXT、ini、bat格式的文件中的
文字
或者字符串进行
替换
的工具,通常用来处理代码混乱或者小说翻新的
问题
,有需要的可以下载使用。相关软件软件大小版本说明...
Web 开发
81,092
社区成员
341,716
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章