实现以下2个接口
不能使用语言的基本分割组合函数(如Java的String.split, php 的explode和implode)
1)字符串拆分成数组,如"ab&&2" 通过”&&“做分隔符,分割得到字符串数组[“ab”,“2”]
2)实现字符串组合, 如[“ab”,“2”]通过”&&" 分隔符,组合成字符串"ab&&2
public class Blogs1{
static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
// test01();
test02();
}
//字符串拆分成数组,如"ab&&2"通过"&&"做分割符,分割得到字符串数组["ab", "2"]
public static void test01() {
// 输入一个字符串
String str = sc.nextLine();
// 定义一个字符串数组,储存分割得到的字符串
List<String> list = new ArrayList<String>();
// 输入的字符串的长度
int len = str.length();
// 把字符串拆分成字符数组
char[] ch = str.toCharArray();
int temp = 0;
for (int i = 0; i < len - 1; i++) {
// 查看是否出现分割符&&
if (ch[i] == '&' && ch[i + 1] == '&') {
list.add("\"" + str.substring(temp, i) + "\"");
i += 2;
temp = i;
}
// 查看是否最后出现了分割符&&没有就继续分割这个字符串
if ((i == len - 1 || i == len - 2) && (ch[i - 1] != '&' || ch[i] != '&')) {
list.add("\"" + str.substring(temp, len) + "\"");
}
}
// 输出这个字符数组
System.out.println(list.toString());
}
// 实现字符串组合,如["ab", "2"]通过"&&"分隔符,组成字符串"ab&&2"
public static void test02() {
// 输入这个字符串数组
String sList = sc.nextLine();
// System.out.println(sList);
// 同样将这个字符串拆分成拆分成一个字符数组
char[] ch = sList.toCharArray();
// 定义一个字符串缓冲类,通过字符串的拼接来组合成一个新的字符串。
StringBuffer sBuffer = new StringBuffer();
for (int i = 2; i < sList.length() - 2; i++) {
//字符串拼接
sBuffer.append(ch[i]);
//查找两个字符串的连接处 ", "
if (i < (sList.length() - 5) && ch[i + 1] == '\"' && ch[i + 2] == ',' && ch[i + 3] == '\"') {
sBuffer.append("&&");
i += 3;
}
}
//输出这个重新组合成的字符串
System.out.println(sBuffer.toString());
}
}