黑马程序员技术交流社区
标题:
一个字符串替换的问题
[打印本页]
作者:
张卫刚
时间:
2013-3-24 15:50
标题:
一个字符串替换的问题
本帖最后由 张卫刚 于 2013-3-25 21:13 编辑
abcKmoverKmeboK
怎么把第一个K 和最后一个 K 替换成 H
结果如:abcHmoverKmeboH
作者:
张洪慊
时间:
2013-3-24 16:11
class Test
{
public static void main(String[] args)
{
StringBuffer sb=new StringBuffer("abcKmoverKmeboK");
sb.setCharAt(sb.indexOf("K"),'H');//把第一个K换成字符H
sb.setCharAt(sb.lastIndexOf("K"),'H');//倒数第一个K换成字符H
System.out.println(sb.toString());
}
}
复制代码
以上仅供参考.
作者:
葛伟
时间:
2013-3-24 16:25
1楼正解
StringBuffer sb=new StringBuffer("abcKmoverKmeboK");
sb.setCharAt(sb.indexOf("K"), 'H');
sb.setCharAt(sb.lastIndexOf("K"), 'H');
作者:
张卫刚
时间:
2013-3-24 23:20
感谢各位,有没有更好的办法,就这么个串动用StringBuffer感觉有点大动尴尬了,我用StringBuilder试过,就是感觉小小个串有没有更好的办法
作者:
刘焕新
时间:
2013-3-25 01:18
本帖最后由 幻@尋 于 2013-3-25 14:58 编辑
看我的!代码看着有点多,其实思路很简单的:
public class Replace
{
public static void main(String[] args)
{
//定义目标字符串
String str = "abcKmoverKmeboK";
//目标字符串转换成字符数组
char[] c = str.toCharArray();
//从头开始找:
for(int x=0; x<c.length; x++)
{
//碰到匹配的,直接修改后退出循环
if('K' == c[x])
{
c[x] = 'H';
break;
}
}
//从末尾开始找:
for(int y=c.length-1; y>=0; y--)
{
//碰到匹配的,直接修改后退出循环
if('K' == c[y])
{
c[y] = 'H';
break;
}
}
//打印看看吧:
System.out.print(new String(c));
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2