本来是不想写这字符串拼接的,因为这个在拼接起来实在是太麻烦了,不过对于初学者还是不错的选择;
这里我这里主要是想总结一下可以用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("指定特殊符号"))进行分割好了
我总结的有:
①运算符 -/=%&<>小数点均可,+*^|英文下的半角小括号、中括号、大括号不行,全角的小括号、中括号可以,可怜的是大括号没有全角符号
②其他特殊符号:·~、?#@!¥均可,$不行
③全角的符号一般都可以,当然了最好不要用中文了
注意:推荐使用多种特殊符号组合哦