AMcoder - javascript, python, java, html, php, sql

Unity3D bluetooth սերիական սնուցման բաժանիչի խնդիր C#

Ես ունեմ Bluetooth մոդուլ, որը տողերի հոսք է փոխանցում Unity հավելված: Նման է լարային փոփոխականին։ Սրանք x, y և z են imu սենսորից: Ես փորձում եմ արժեքներն առանձնացնել իրենց սեփական x, y, z փոփոխականների մեջ, այսինքն՝ int x, int y և int z:

Այսպիսով, երբ ես փորձում եմ ստորև նշված կոդը: Սա սխալն է.

FormatException. մուտքագրման տողը ճիշտ ձևաչափով չէր: System.Number.StringToNumber (System.String str, System.Globalization.NumberStyles ընտրանքներ, System.Number+NumberBuffer& number, System.Globalization.NumberFormatInfo info, System.Boolean parseDecimal) (at :0)

   Code (csharp):
   public void fishing()
   {
    string numo = "4,-1,5,7,8,10,5,-4,8,10,-30";
    string[] splitted = numo.Split(',');
    int[] nums = new int[splitted.Length];
    for (int i = 0; i < splitted.Length; i++)
    {
        //source of error.
        nums[i] = int.Parse(splitted[i], 
        System.Globalization.NumberStyles.AllowLeadingSign);
        int x = nums[0];
        int y = nums[1];
        int z = nums[2];
        Debug.Log(x);
        Debug.Log(y);
        Debug.Log(z);

    }
    }

Այնուհետև ես փորձեցի գործարկել կոդը՝ առանց ամբողջ թվերի փոխակերպման: Սա սխալն է.

IndexOutOfRangeException. ինդեքսը զանգվածի սահմաններից դուրս էր:

  Code (csharp):
  public void fishing()
  {
    string numo = "4,-1,5,7,8,10,5,-4,8,10,-30";
    string[] splitted = numo.Split(',');
    int[] nums = new int[splitted.Length];
    for (int i = 0; i < splitted.Length; i++)
    {
        string x = splitted[0];
        string y = splitted[1];
        string z = splitted[2];
        Debug.Log(x);
        Debug.Log(y);
        Debug.Log(z);

      }
    }

Այսպիսով, ինչպես բացատրվեց, ես ունեմ x,y,z,x,y,z,x,y,z տող, որը գալիս է Bluetooth մոդուլից: Ես կցանկանայի ստանալ տվյալները և սահմանել դրանք որպես տարբեր փոփոխականներ:

int x; int y, int z

Հուսով եմ, որ դուք կարող եք օգնել

01.12.2018

  • Ձեր «splitted»-ը զանգված է, «nums»-ն ունի նույն չափը: Այնուհետև զանգվածը փոխանցում եք int.Parse()-ին, երբ պետք է տող փոխանցեք: Հաջորդը, ինչու եք ակնկալում, որ int.Parse-ը վերադարձնի երկու ինտերի զանգված: Միգուցե նկատի ունեիք «Parse(splitted[i])»: 01.12.2018
  • Բարև nums[i] = int.Parse(splitted[i]); օգտագործվում է nums = int.Parse(splitted); 01.12.2018
  • Ի՞նչ եք ակնկալում, որ տեղի կունենա: Դուք վերլուծում եք տողը i ինդեքսում, այն վերագրում nums[i]-ին, բայց օգտագործում եք հաստատուն 0, 1, 2 ինդեքսներ՝ թվերից կարդալու համար: 01.12.2018

Պատասխանները:


1

Դուք չունեք աշխատանքային ծածկագիր, ուստի ես չգիտեմ, թե արդյոք սա կօգնի ձեզ.

public void fishing()
        {
            string numo = "4,-1,5,7,8,10,5,-4,8,10,-30";
            string[] splitted = numo.Split(',');
            int[] nums = new int[splitted.Length];

            for (int i = 0; i < splitted.Length; i++)
            {
                if (splitted[i] == "") continue;
                var oneNum = int.Parse(splitted[i]);

                Debug.WriteLine(oneNum);
            }
        }

Դուք պետք է կարողանաք վրիպազերծել կոդը, երբ միացված եք bluetooth սարքին՝ ստուգելու համար, արդյոք դուք իսկապես ստանում եք ճիշտ մուտքագրում:

01.12.2018
  • Այսպիսով, ես թարմացրի կոդը և հաջողությամբ փորձարկեցի այն, բայց երբ միացնում եմ Bluetooth մոդուլը: Ես ստանում եմ այս սխալը: IndexOutOfRangeException. ինդեքսը զանգվածի սահմաններից դուրս էր: Միգուցե այն պատճառով, որ ֆունկցիան աշխատում է ֆիքսված երկարության տողի մեջ, և Bluetooth-ը շարունակական է: Գուցե դուք կարող եք օգնել: 01.12.2018
  • Կարո՞ղ եք կարգաբերել և տեսնել, թե որն է ձեր ուժեղ կողմը: Դուք օգտվու՞մ եք ճիշտ նույն կոդը: 01.12.2018
  • Bluetooth-ը միացնելը սխալ է ստեղծում: Բայց ես խմբագրել եմ գրառումը, և դա իրական կոդը է: Հուսով եմ, որ դուք կարող եք օգնել: 01.12.2018
  • Տարօրինակ է, ես չեմ տեսնում ձեր խմբագրված կոդը, ես դեռ տեսնում եմ ձկնորսության մեթոդը string numo-ով: Խնդրում եմ նայեք, արդյոք դուք թարմացրել եք գրառումը իրական կոդով, որպեսզի կարողանամ օգնել ձեզ: 01.12.2018
  • Բարև Ալդերթ: Խնդրում եմ հիմա նայեք: 02.12.2018
  • Կարծում եմ, որ ձեր մուտքագրման տողը վերջում ունի ստորակետ, օրինակ՝ string numo = 4,-1,5,7,8,10,5,-4,8,10,; Սա հանգեցնում է նրան, որ վերջին տողը թիվ չէ: Ես ֆիքսեցի իմ պատասխանը, որպեսզի զբաղվեմ սրա հետ 02.12.2018
  • Հմմ Հետաքրքիր է, որ լարը մշտական ​​հոսք է Bluetooth-ից: Ես կփորձեմ հեռացնել վերջավոր ստորակետը: Շատ շնորհակալություն Aldert: 03.12.2018
  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..