字符串.Substring(0,19)就会报错 索引和长度必须引用该字符串内的位置
也就是说 当字符串为一个长度的时候 就出错
可我写的是搜索功能 也不能搜一个字的时候不出结果啊?! 求解

解决方案 »

  1.   

    先判断长度是否超过19,超过才截取,不超过返回原字符串
    str = str.Length > 19 ? str.Substring(0, 19) : str;
      

  2.   

    字符串.Substring(0,19).Trim();

    str.Substring(0, str.Length).Trim();
    也会错吗?
      

  3.   

    正则取得子串或者自己循环取得。Substring(0,19)除非特别明确,否则第二个参数应该是变量或者用IndexOf()计算得出
      

  4.   

    str.Substring(0, str.Length).Trim();
    也会错吗?
    是的也会报错
      

  5.   

    我要写的是一个搜索功能
    我是想超过19个字符 就截取前19个字符
    不过
    str = str.Length > 19 ? str.Substring(0, 19) : str;
    这样写真的是能够解决问题  我本身也是类似的写法
    我不希望判断字符的长度 有办法没?
    就是字符串.Substring(0,19) 就这一句 怎么改?
      

  6.   

    用Contains 字符串.Contains("aaaa");
      

  7.   


    str.Substring(0, str.Length-1).Trim();????
      

  8.   

    最笨的方法:
                  string str = textBox1.Text +"                    " ;//输入20个空格;
                textBox2.Text = str.Substring(0, 19).Trim();
      

  9.   

    我之所以这样提问 是因为我知道asp中有left(字符串,"19")
    可c#里的substring(0,19) 当字符串长度为1时 就出错 
    长度为2以上 就没问题了
    很费解 
    也不是我有毛病 
    如果用判断的话 要修改大量源码