none
索引和长度必须引用该字符串内的位置。 RRS feed

  • 问题

  •   这 是代码

     asssd = serialPort1.ReadLine();

    if (asssd.Length != 1)
                    {
                        ddww = asssd.Remove(0, 2);
                        ssww = ddww.Substring(0, 4);//这报错
                        hhh = ddww.Substring(0, 5);
                    }
                    if (ssww == "Node")
                    {
                        LQIString = asssd;
                        ssdss = LQIString.Remove(0, 15);

    2011年4月13日 12:04

答案

  • 你好

    是的 字串的長度一定要 和開始字串的INDEX 加 字串一樣長我大過..才可以使用SUBSTRING 這佪功能

    否則會出錯的

    所以我建議你在用substring 前用IF statement來檢查字串長度夠不夠長..

    不夠的時間做另外一些相關的功能

    Please correct me if my concept is wrong


    Chi
    • 已标记为答案 Cookie Luo 2011年4月15日 3:26
    2011年4月13日 12:18
    版主
  • 您好

    做 SubString 或 Remove 時,都先判斷 Length 是否足夠

    asssd = serialPort1.ReadLine(); 
    if (asssd.Length >= 2)
    {
     ddww = asssd.Remove(0, 2);
    }
    if (ddww.Length >= 4)
    {
     ssww = ddww.Substring(0, 4);
    }
    if (ddww.Length >= 5)
    {
     hhh = ddww.Substring(0, 5);
    }
    
    if (ssww == "Node")
    {
     LQIString = asssd;
     if (LQIString.Length >= 15)
     {
      ssdss = LQIString.Remove(0, 15);
     }
    }
    

    歡迎參觀我的Blog.NET菜鳥自救會
    • 已标记为答案 Cookie Luo 2011年4月15日 3:26
    2011年4月13日 13:00

全部回复

  • 你好

    是的 字串的長度一定要 和開始字串的INDEX 加 字串一樣長我大過..才可以使用SUBSTRING 這佪功能

    否則會出錯的

    所以我建議你在用substring 前用IF statement來檢查字串長度夠不夠長..

    不夠的時間做另外一些相關的功能

    Please correct me if my concept is wrong


    Chi
    • 已标记为答案 Cookie Luo 2011年4月15日 3:26
    2011年4月13日 12:18
    版主
  • 谢谢,能不能具体说下 if statement 怎么用?

    2011年4月13日 12:52
  • 您好

    做 SubString 或 Remove 時,都先判斷 Length 是否足夠

    asssd = serialPort1.ReadLine(); 
    if (asssd.Length >= 2)
    {
     ddww = asssd.Remove(0, 2);
    }
    if (ddww.Length >= 4)
    {
     ssww = ddww.Substring(0, 4);
    }
    if (ddww.Length >= 5)
    {
     hhh = ddww.Substring(0, 5);
    }
    
    if (ssww == "Node")
    {
     LQIString = asssd;
     if (LQIString.Length >= 15)
     {
      ssdss = LQIString.Remove(0, 15);
     }
    }
    

    歡迎參觀我的Blog.NET菜鳥自救會
    • 已标记为答案 Cookie Luo 2011年4月15日 3:26
    2011年4月13日 13:00
  • 谢谢你这么有耐心,

    那会没看懂statement什么意思,我改好了。程序这会运行对 了

    2011年4月13日 13:12