登录 立即注册
安币:

安卓巴士 - 安卓开发 - Android开发 - 安卓 - 移动互联网门户

Android客户端与服务器端数据交互之——字符串拼接 [复制链接]

2016-4-19 18:19
zml_2015 阅读:5046 评论:3 赞:0
Tag:  

本来是不想写这字符串拼接的,因为这个在拼接起来实在是太麻烦了,不过对于初学者还是不错的选择;


这里我这里主要是想总结一下可以用String.split进行拆分的特殊符号都有哪些,顺便写了个字符串拼接做个例子(看最后面红色字)


在Android客户端与服务器端做通信的时候,如果不采用xml或者json格式传递数据的话,当然还可以用字符串拼接的方式进行数据交互;

我最一开始的时候就是采用字符串拼接的方式,在服务器端进行字符串拼接,在客户端再进行拆分;

在这就简单模拟一下,比如:

①先模拟服务器端:

@Test public void TestToObject(){ 
 //模拟客户端: 
 //在这模拟一下从已经拿到服务器端传来的拼接好的字符串; 
 String jsonString = "郑明亮,男,22;张三,男,23;李四,女,24;";
 //先将一组组数据分开拿到 String persons[] = jsonString.split(";"); 
 //再拿每组属性中的相关属性
String temp[] = {};
 String name[] = new String[3]; 
 String sex[] = new String[3]; 
 int age[] = new int[3]; 
 Person person ; 
 List<Person> list = new ArrayList<JsonParseTest.Person>();
 for(int i = 0;i < persons.length; i ++)
{ temp = persons[i].split(",");//拿到一组数据放到temp中,即第一次循环:temp[] = {"郑明亮","男",22} System.out.println(temp[i]); name[i] = temp[0]; sex[i] = temp[1]; 
 age[i] = Integer.parseInt(temp[2]);
 person = new Person(name[i],sex[i],age[i]); list.add(person); } 
 System.out.println(list.toString()); }
上下图


②模拟客户端:

首先创建一个实体类,只写了toString和一个全参构造

class Person{ 
 String name; String sex; int age; 
 public Person(String name, String sex, int age) {
 super(); 
 this.name = name; 
 this.sex = sex; 
 this.age = age; }
 /* (non-Javadoc) * @see java.lang.Object#toString() */ 
 @Override 
 public String toString() { return "Person [name=" + name + ", sex=" + sex + ", age=" + age + "]"; } }
接下来模拟客户端拆分数据:


@Test public void TestToObject(){ 
 //模拟客户端:
 //在这模拟一下从已经拿到服务器端传来的拼接好的字符串;
 String jsonString = "郑明亮,男,22;张三,男,23;李四,女,24;"; 
 //先将一组组数据分开拿到 
 String persons[] = jsonString.split(";"); 
 //再拿每组属性中的相关属性
 String temp[] = {}; 
 String name[] = new String[3];
 String sex[] = new String[3]; 
 int age[] = new int[3]; 
 Person person ;
 List<Person> list = new ArrayList<JsonParseTest.Person>();
 for(int i = 0;i < persons.length; i ++){ temp = persons[i].split(",");
//拿到一组数据放到temp中,即第一次循环:
temp[] = {"郑明亮","男",22}
 System.out.println(temp[i]); 
 name[i] = temp[0]; 
 sex[i] = temp[1]; 
 age[i] = Integer.parseInt(temp[2]); 
 person = new Person(name[i],sex[i],age[i]); list.add(person); } System.out.println(list.toString()); }
上下图:


接下来要说一下我这样字符串拼接的弊端以及解决方案了:

我在拼接和拆分数据的时候采用的是逗号和分号,但是如果数据中就是包含逗号和分号我们该怎么办呢

我们可以采用多种特殊符号组合的形式进行拼接和拆分:

@Test public void Testreplase(){ 
 String s = "jdieoahud,,;;####%¥(@!!!!&&djeioand"; System.out.println(s.replace(",,;;", ""));//看这看这 
 String m[]; System.out.println(m = s.split("####%¥(@!!!!&&")); System.out.println(m[0]); 
// System.out.println(m[1]); }

我这主要是总结一下都有哪些特殊符号可以用来作为分隔符,然后自己去用特殊符号(String.split("指定特殊符号"))进行分割好了

我总结的有:

①运算符 -/=%&<>小数点均可,+*^|英文下的半角小括号、中括号、大括号不行,全角的小括号、中括号可以,可怜的是大括号没有全角符号

②其他特殊符号:·~、?#@!¥均可,$不行

③全角的符号一般都可以,当然了最好不要用中文了

注意:推荐使用多种特殊符号组合哦

分享到:
我来说两句
facelist
您需要登录后才可以评论 登录 | 立即注册
所有评论(3)
Android2号 2016-4-20 11:00
有么有json封装讲解。
回复
zml_2015 2016-8-2 12:12
有啊
回复
zml_2015 2016-8-2 12:56
Android2号: 有么有json封装讲解。
刚刚把博文搬过来,你可以去这看看  http://www.apkbus.com/blog-725636-61283.html
回复

站长推荐

通过邮件订阅最新安卓weekly信息
上一条 /4 下一条

广告投放| 申请友链|手机版|站点统计|安卓巴士 ( 粤ICP备15117877号 )

返回顶部