如何将空格转为%?举个例子:一个文本框(textbox)里面我假设输入“中国  上海 软件开发”我想将其变为“中国%上海%软件开发”,其中在文本框中“中国”和“上海”中间有2个空格,“上海”和“软件开发”有1个空格,我主要的意思就是将文字和文字中间的空格(不管有几个空格)转为1个“%”。请假各位大虾了!

解决方案 »

  1.   

    replace好象不可以的.空格数量不确定.先split根据空格分开.然后么string数组循环trim.然后在各位置后加%.然后在把string数组拼起来.这样OK.
      

  2.   

    补充下,空格和空格之间的应该是null,所以那组数据就丢掉.
      

  3.   

    System.Text.RegularExpressions.Regex.Replace("北京   上海 深圳"," +","%");
      

  4.   

    string b=new System.Text.RegularExpressions.Regex(" +").Replace("北京   上海       深圳","%");
      

  5.   

    使用正则表达式可以实现:
    如:
    Regex.Replace("abc d  efg",@"\s+","%");
      

  6.   

    TO:caobob(我是虾米儿的fans,她的笑容很熟悉。) 
    数组如何做循环啊?
      

  7.   

    LZ 你真是笨啊。人家都给出来了最关键了的,变通一下还不会啊。我帮你做完算了。
     string a= 你要输入的字符
    string b=new System.Text.RegularExpressions.Regex(" +").Replace(a,"%");
      

  8.   

    to:winner2050(winner):
    刚刚试了你的方法,不对的!
      

  9.   

        string a= "北京 a      a 上海 aa 深圳";
    string b=new System.Text.RegularExpressions.Regex(" +").Replace(a,"%");
    Response.Write (b);得出的结果是:
    北京%a%a%上海%aa%深圳 
    完全符合LZ的意思
      

  10.   

    循环就是用FOR语句.正则不错的,学习下.
      

  11.   

    怎么在CSDN中可以输入共产党三个字啊?
      

  12.   

    那假如我文本框输入的信息是”北京 上海 “,某个字段里保存的信息是”上海人民 北京人民“,这样就无法查询出来了,请问高手,怎样才能不看位置也能查询出来呢? (可能我表达的不是很清楚,抱歉)
    ================================
    你不应该将所有的关键字通过"%"联成一个条件去查,
    select * from yourtable where content like '北京%上海'
    而应该分成若干个条件,在SQL中这样:
    select * from youtable where content like '北京' and content like '上海'
    这样就解决你的问题了
      

  13.   

    刚才写错条件,是
    like '%北京%'
    犯晕了
      

  14.   

    你大概向写一个复杂的搜索类程序,sql语句可以用技巧生成的,最后的应该是楼上所说的!
    把字符串拆成数组
    sqlstr="select * from tablename where "
    for(i=0;i<数组.lenth;i++)
      sqlstr=sqlstr+"content like "+数组[i];
      if( i+1<数组.lenth )
        sqlstr=sqlstr+"and";
    next i
    最后的sqlstr应该等于楼上的效果!
    执行sql
      

  15.   

    谁说Replace不行的?
    Microsoft.VisualBasic.Strings中的
    Public Shared Function Replace(ByVal Expression As String, ByVal Find As String, ByVal Replacement As String, ByVal Optional Start As Integer = 1, ByVal Optional Count As Integer = -1, <OptionCompare> ByVal Optional [Compare] As CompareMethod = 0) As String
          Dim text1 As String
          Try 
                If (Count < -1) Then
                      Throw New ArgumentException(Utils.GetResourceString("Argument_GEMinusOne1", "Count"))
                End If
                If (Start <= 0) Then
                      Throw New ArgumentException(Utils.GetResourceString("Argument_GTZero1", "Start"))
                End If
                If ((Expression Is Nothing) OrElse (Start > Expression.Length)) Then
                      Return Nothing
                End If
                If (Start <> 1) Then
                      Expression = Expression.Substring((Start - 1))
                End If
                If (((Find Is Nothing) OrElse (Find.Length = 0)) OrElse (Count = 0)) Then
                      Return Expression
                End If
                If (Count = -1) Then
                      Count = Expression.Length
                End If
                text1 = Strings.Join(Strings.Split(Expression, Find, (Count + 1), [Compare]), Replacement)
          Catch exception1 As  Exception
                Throw exception1
          End Try
          Return text1
    End Function
      

  16.   

    to:mzhao() 
    谢谢你,但是我用ASP.NET的。