| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1305 人关注过本帖
标题:求子字符串问题,敬请赐教
只看楼主 加入收藏
xpc
Rank: 1
等 级:新手上路
帖 子:73
专家分:4
注 册:2009-5-7
结帖率:84.62%
收藏
 问题点数:0 回复次数:11 
求子字符串问题,敬请赐教
我想用这个函数实现的功能是:
使在b字符串中出现的每一个字符,如果在a中出现都将其删掉如
a="abccddffg",b=abd,执行过后可得:a="ccffg"
但不知怎么不行,执行过后得到的是:a="bccddffg"
public string min(string a, string b)
        {
            int i = 0;
            string c = "";
            int x = b.Length - 1;


            while (a.IndexOf(b.Substring(i, 1)) != -1 && (i<x))
            {
                c = a.Replace(b.Substring(i, 1), "");
                i++;
            }
            return c;
}
搜索更多相关主题的帖子: 字符 
2009-10-16 19:42
jedypjd
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1096
专家分:4969
注 册:2009-7-27
收藏
得分:0 
程序代码:
        private void button1_Click(object sender, EventArgs e) 
        { 
            char[] ch = this.textBox2.Text.ToCharArray(); 
            string str=this.textBox1.Text; 
 
            foreach (char c in ch) 
            { 
                str=str.Replace(c.ToString(),""); 
            } 
 
            this.textBox3.Text = str; 
        }

天涯无岁月,歧路有风尘,百年浑似醉,是非一片云
2009-10-16 20:23
xpc
Rank: 1
等 级:新手上路
帖 子:73
专家分:4
注 册:2009-5-7
收藏
得分:0 
我实在一个类里面定义的这个函数
2009-10-16 20:25
xpc
Rank: 1
等 级:新手上路
帖 子:73
专家分:4
注 册:2009-5-7
收藏
得分:0 
谢谢啊,呵呵
2009-10-16 20:29
xpc
Rank: 1
等 级:新手上路
帖 子:73
专家分:4
注 册:2009-5-7
收藏
得分:0 
可我试了一下,还是不行啊
2009-10-16 20:55
xpc
Rank: 1
等 级:新手上路
帖 子:73
专家分:4
注 册:2009-5-7
收藏
得分:0 
好像问题是出在循环上面,结果认识我上面所说的那种情况
2009-10-16 20:57
xpc
Rank: 1
等 级:新手上路
帖 子:73
专家分:4
注 册:2009-5-7
收藏
得分:0 
可以了,您的程序完全正確,是我編寫的問題,謝謝
2009-10-17 10:21
xxwgcg
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-3-13
收藏
得分:0 
程序代码:
public string min(string a, string b) 
        { 
            StringBuilder a = new StringBuilder(a); //可变字符序列  比String容易操作
            StringBuilder b = new StringBuilder(b); 
 
            for(int i=0;i<b.Length;i++) 
            { 
                a.Replace(b[i].toString(), string.Empty); 
            } 
            return a; 
}
大致思路就这样吧,你可以测试下
2009-10-20 02:32
xxwgcg
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-3-13
收藏
得分:0 
这是我认为最简单的.....
2009-10-20 02:32
baikil
Rank: 10Rank: 10Rank: 10
来 自:X星球
等 级:青峰侠
威 望:4
帖 子:282
专家分:1580
注 册:2009-7-20
收藏
得分:0 
public string min(string a, string b)
{
  int i = 0;
  string c = "";
  int x = b.Length - 1;
  while (a.IndexOf(b.Substring(i, 1)) != -1 && (i<x))
  {
    c = a.Replace(b.Substring(i, 1), "");
    i++;
   }
  return c;
}
不仔细看还不知道里面问题一堆啊,
先看这句:
nt x = b.Length - 1;  ---->这一句就决定while中只能i=0,1 问题为差了一个值2

再看下一句:

hile (a.IndexOf(b.Substring(i, 1)) != -1 && (i<x)) 你这里的判断顺序问题出来了---->原本意思为先为b中的某个在a中是否存在,再判断i是否出了a的长度大小..这是一个错误的..

下面还有:
c = a.Replace(b.Substring(i, 1), "");  -->这一句就是以""还提换b中存在的字符传给c,--->但是这个c永运为a中只对b中的某个字符提换一次的结果.

问题差不多这么多了:

public string min(string a, string b)
        {
            int i = 0;
            string c = a //--->初如为a 的值
            int x = b.Length; //-->若为b.Length-1,则下面的i<x改为i<=x;
 
 
            while ((i<x)&& c.IndexOf(b.Substring(i, 1)) != -1) //变换一下位置,只需在c中判断
            {
                c = c.Replace(b.Substring(i, 1), "");         //递归删除在b中的字符
                i++;
            }
            return c;
}


自创QQ群64885635,方便C#学习交流.希望各项工作路好学都好入!
2009-10-20 09:30
快速回复:求子字符串问题,敬请赐教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017067 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved