java字符串怎样分段读取

手机客户端接收wifi单片机实时发送过来的信号,格式是<112.3046798706#133.7890625000#134.7656250000#143.0664062500#>代表单片机同时发送过来的四路数据,我想在手机客户端android程序上把实时发送的数据解析出来,去掉<>和#号,只要里面的数据,并且实时在textview显示,不知道怎样算法?求高手指点,最好能给代码显示一下?

代码如下:

public class help6 {


public static void main(String[] args){

String str="<112.3046798706#133.7890625000#134.7656250000#143.0664062500#>";

   String[] strr=help6.str(str);

   for(int i=0;i<strr.length;i++){

 System.out.println(strr[i]);

 }

}

public static String[]  str(String str){

String str2=str.replace("<","");

String str3=str2.replace(">", "");

String[] str4=str3.split("#");

return str4;

}

}

效果如图:

追问

关键是我有好多组这样的数据,我手机客户端需要不断的接收进行处理,并不是只处理一组,我该怎样做呢?

追答

你可以用循环语句,不过此处建议用while循环,while(接受的字符串不为空),循环调用那个方法即可,这也是方法封装的意义

追问

求继续明示,新手刚开始搞这个东西,望多多指教

追答

能把你接受数据的代码发来看看吗,如果要很详细的告诉你,那肯定得根据你的代码来的,现在我们能提供给你的只是一种思路

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-05-14
可以通过java的”substring“方法截取出对应的字符串,前提是知道开始和结束的字符串的值:
String getSignInfo = reqResult.substring(reqResult.indexOf("(") + 1, reqResult.indexOf(")"));
解释:上述方法就是截取reqResult字符串的中开始”(“和结束”)“中间部分的内容,”1“就是”)“的长度,之后将获取的结果赋值给”getSignInfo进行输出即可“;
备注:以上方法通用于截取字符串,数字”1“和开始结束字符串根据实际需要修改即可。本回答被网友采纳
第2个回答  2014-04-27
假设 content 是你的那段字符串数据

String content = "<112.3046798706#133.7890625000#134.7656250000#143.0664062500#>";
String newContent = content.substring(1,content.length()-2);
String[] strs = newContent.split("#");
String str1 = strs[0];
String str2 = strs[1];
String str3 = strs[2];
String str4 = strs[3];
// str1 str2 str3 str4 就是那4个小数了追问

因为我手机实时接收wifi单片机数据,不知只有这这一组四路数据,要是有无数组这样格式相同的数据怎样处理呢?我刚入手,请多多指教?

追答

public class Xss {

public static void main(String[] args) {
String content = "";
String newContent = content.substring(1,content.length()-2);
String[] strs = newContent.split("#");

for (String string : strs) {
//这里能取到所有的数据了
System.out.println(string);
}
}
}

本回答被提问者采纳
第3个回答  2014-04-27
public class Dome {

public static void main(String[] args) {
// duplicateRemoval();
String str = "<112.3046798706#133.7890625000#134.7656250000#143.0664062500#>";
stringDispose(str);
   }


public static void stringDispose(String str){
String s;
String[] string;
s = (String) str.subSequence(1, str.length()-1);
string = s.split("#");
for (int i = 0; i < string.length; i++) {
System.out.println(string[i]);
}
}
}

第4个回答  2014-04-27
根据subString获取<>里面的数据,根据split对#进行分割追问

关键是我的数据非常多,好多串数据,怎样将1-4路中每一路对应的数据放在一起进行处理?

追答

额。。。你不会用for循环接受啊,只需要每次执行时判断是否还有接受数据,有就继续for循环,没有就结束了呗

相似回答