Разбіваючы радкі ў Android Application

Я спрабую напісаць прыкладанне для Android у Java для Android з тэлефона. Android дадатак счытвае паслядоўныя радкі дадзеных праз Bluetooth, выкарыстоўваючы профіль SPP. Гэтыя радкі пасылаюцца іншай прыладай Bluetooth. Гэтыя радкі ў наступным фармаце:

"Acc Data:x_adc,y_adc,z_adc!"

Кожны радок пачынаецца з:

<�Р> "Дакладнасць дадзеных:

і заканчваецца

<�Р> "!"

X_adc, y_adc і z_adc з'яўляюцца значэннямі, і мае даўжыню 5 лічбаў.

Гэтыя радкі пасылаюцца праз рэгулярныя прамежкі часу. Зараз я магу выкарыстоўваць InputStream , каб прыняць гэтыя радкі, выкарыстоўваючы буфер радка. Я таксама здольны адлюстроўваць поўныя радкі ў пракручваю TextView, які адлюстроўвае кожную радок пад іншы.

Тое, што я хачу зрабіць, гэта раскласці x_adc, y_adc і значэнне z_adc з радкоў і адлюстравання гэтых значэнняў у 3 асобных TextViews. У TextViews, якія неабходна адлюстраваць значэння АДК павінны абнавіць пасля новага радка была адпраўлена на Android смартфон. Я спрабаваў выкарыстаць клас Узор і раскол (), каб раскласці радкі, але не ў стане зразумець іх і выкарыстоўваць іх у дадатку.

Можа хто-небудзь дапамагчы мне з гэтай праблемай?

0
Што вы спрабавалі? Чаму гэта не атрымаецца?
дададзена аўтар Averroes, крыніца

8 адказы

Вы можаце выкарыстоўваць падрадок() , каб прыбраць лішнія дадзеныя, а затым Раскол() :

String[] values = indata.substring(9, 26).split(",");
String x_adc = values[0];
...
2
дададзена

Вы можаце выкарыстоўваць падрадок() , каб прыбраць лішнія дадзеныя, а затым Раскол() :

String[] values = indata.substring(9, 26).split(",");
String x_adc = values[0];
...
2
дададзена

спроба:

    private TextView tv1;
    private TextView tv2;
    private TextView tv3;

    update("Acc Data:x_adc,y_adc,z_adc!");

    public void update(String data) {
        String values[] = data.replace("Acc Data:", "").replace("!", "").split(",");
        String v1 = "";
        String v2 = "";
        String v3 = "";
        if(values != null && values.length == 3) {
            v1 = values[0];
            v2 = values[1];
            v3 = values[2];
        }
        tv1.setText(v1);
        tv2.setText(v2);
        tv3.setText(v3);
    }

Альтэрнатыўны спосаб атрымання значэнняў:

String values[] = data.substring(data.indexOf(':') + 1, data.indexOf('!')).split(",");
1
дададзена
Прывітанне britzl, Дзякуй за вашу дапамогу. Ваш прыклад працуе! Прывітанне Вілем
дададзена аўтар Willem den Hollander, крыніца

спроба:

    private TextView tv1;
    private TextView tv2;
    private TextView tv3;

    update("Acc Data:x_adc,y_adc,z_adc!");

    public void update(String data) {
        String values[] = data.replace("Acc Data:", "").replace("!", "").split(",");
        String v1 = "";
        String v2 = "";
        String v3 = "";
        if(values != null && values.length == 3) {
            v1 = values[0];
            v2 = values[1];
            v3 = values[2];
        }
        tv1.setText(v1);
        tv2.setText(v2);
        tv3.setText(v3);
    }

Альтэрнатыўны спосаб атрымання значэнняў:

String values[] = data.substring(data.indexOf(':') + 1, data.indexOf('!')).split(",");
1
дададзена
Прывітанне britzl, Дзякуй за вашу дапамогу. Ваш прыклад працуе! Прывітанне Вілем
дададзена аўтар Willem den Hollander, крыніца

This code will handles instances where > 3 tokens are included in the String.

public static void main(String[] args) {
    String value = "Acc Data:x_adc,y_adc,z_adc!";

    String trimmed = value.substring(value.indexOf(":")+1, value.length()-1);
    String[] tokens = trimmed.split(",");

    for(String token: tokens){
        System.out.println(token);
    }
}
0
дададзена

This code will handles instances where > 3 tokens are included in the String.

public static void main(String[] args) {
    String value = "Acc Data:x_adc,y_adc,z_adc!";

    String trimmed = value.substring(value.indexOf(":")+1, value.length()-1);
    String[] tokens = trimmed.split(",");

    for(String token: tokens){
        System.out.println(token);
    }
}
0
дададзена

Проста Lood на радковыя функцыі падрадок (beginIndex, ENDINDEX) , каб здушыць статычную частка радка і раскол ( «») , каб атрымаць 3 значэння.

0
дададзена

Проста Lood на радковыя функцыі падрадок (beginIndex, ENDINDEX) , каб здушыць статычную частка радка і раскол ( «») , каб атрымаць 3 значэння.

0
дададзена