Java Android应用程序中字符串的分解
我正在尝试用Java为Android手机编写一个Android应用程序。Android应用程序使用SPP配置文件通过蓝牙读取串行数据字符串。这些字符串由另一个蓝牙设备发送。这些字符串的格式如下:Java Android应用程序中字符串的分解,java,android,bluetooth,Java,Android,Bluetooth,我正在尝试用Java为Android手机编写一个Android应用程序。Android应用程序使用SPP配置文件通过蓝牙读取串行数据字符串。这些字符串由另一个蓝牙设备发送。这些字符串的格式如下: "Acc Data:x_adc,y_adc,z_adc!" 每个字符串以以下内容开头: “行政协调会数据: 以 “!" x_adc、y_adc和z_adc是值,长度为5位 这些字符串以固定的间隔发送。现在我可以使用InputStream使用字符串缓冲区接受这些字符串。我还可以在可滚动的文本视图中显示完
"Acc Data:x_adc,y_adc,z_adc!"
每个字符串以以下内容开头:
“行政协调会数据:
以
“!"
x_adc、y_adc和z_adc是值,长度为5位
这些字符串以固定的间隔发送。现在我可以使用InputStream
使用字符串缓冲区接受这些字符串。我还可以在可滚动的文本视图中显示完整的字符串,其中每个字符串显示在另一个字符串的下方
我想做的是从字符串中分解x_adc、y_adc和z_adc值,并在3个单独的文本视图中显示这些值。需要显示adc值的文本视图必须在新字符串发送到Android智能手机后刷新。我尝试使用Pattern类和split()分解字符串,但未能理解它们并在应用程序中使用它们
有人能帮我解决这个问题吗?您可以使用
substring()
清理额外的数据,然后split()
:
String[] values = indata.substring(9, 26).split(",");
String x_adc = values[0];
...
您可以使用
substring()
清理额外的数据,然后使用split()
:
String[] values = indata.substring(9, 26).split(",");
String x_adc = values[0];
...
只需在字符串函数
子字符串(beginIndex,endIndex)
上加一个lood,即可抑制字符串的静态部分,并拆分(“,”)
即可获得3个值。只需在字符串函数子字符串(beginIndex,endIndex)
上加一个lood,即可抑制字符串的静态部分并拆分(“,”)
获取3个值。尝试:
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(",");
尝试:
获取值的另一种方法:
String values[] = data.substring(data.indexOf(':') + 1, data.indexOf('!')).split(",");
此代码将处理
字符串中包含>3个令牌的实例
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);
}
}
此代码将处理字符串中包含>3个令牌的实例
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);
}
}
你尝试了什么?为什么失败了?你尝试了什么?为什么失败了?你好britzl,谢谢你的帮助。你的例子奏效了!你好WillemHello britzl,谢谢你的帮助。你的例子奏效了!你好Willem