注:1.这道题不管是拆分还是组合,都要通过例子去推广到n个
2.第二问不能将第一问的输入值打印当做答案
3.不能使用语言的基本分割组合函数
4.实现两个接口
字符串拆分成数组
(1)首先定义一个接口,并且定义一个拆分方法
public interface Blogs1_chaiFen {
public abstract void chaiFen();
}
(2)然后写一个类继承接口,并完成拆分方法的重写
import java.util.ArrayList;
public class Blogs1 implements Blogs1_chaiFen {
private String str;
ArrayList<String> arrayList = new ArrayList<String>();
public Blogs1(String str) {
this.str = str;
}
@Override
public void chaiFen() {
// 拆分部分,每一轮循环判断字符串是否为空
while (!str.isEmpty()) {
// 判断字符串中是否还存在&&字符
if (str.contains("&&")) {
// 存在,则获取符号的下标,然后切割从下标0到&&的添加到集合当中去
int index = str.indexOf("&&");
arrayList.add("“" + str.substring(0, index) + "”");
// 然后将刚刚已经添加到集合中的部分通过切割舍去
str = str.substring(index + 2);
} else {
// 不存在,则将最后一部分之间添加到集合中去
arrayList.add("“" + str + "”");
break;
}
}
// for (int i = 0; i < arrayList.size(); i++) {
// System.out.println(arrayList.get(i));
// }
System.out.println(arrayList);
}
}
(3)写一个实现类
import java.util.Scanner;
/**
* 1,字符串拆分成数组,如,“ab&&2”,通过“&&”做分隔符,分割得到字符串数组[“ab”,“2”];
*
* @author hf
*
*/
public class Text {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("输入要拆分的字符串,eg:ab&&2");
String str = scanner.next();
// String str = "ab&&2";//测试
Blogs1 blogs1 = new Blogs1(str);
blogs1.chaiFen();
scanner.close();
}
}
实现字符串组合
(1)首先定义一个接口,并且定义一个组合方法
public interface Blogs1_heBing {
public abstract void hebing();
}
(2)然后写一个类继承接口,并完成组合方法的重写
public class Biogs1_2 implements Blogs1_heBing {
private String strHeBing = "";// 合并字符串
private String[] arrs;// 数组
public Biogs1_2(String[] arrs) {
this.arrs = arrs;
}
@Override
public void hebing() {
// 获取数组中每个内容除引号的部分,并且添加&&符号
for (String arr : arrs) {
strHeBing += arr.substring(1, arr.length() - 1) + "&&";
}
// 打印合并数组中除去最后一个&&的字符串
System.out.println(strHeBing.substring(0, strHeBing.length() - 2));
}
}
(3)写一个实现类
import java.util.Scanner;
/**
* 2,实现字符串组合,如:[“ab”,“2”]通过“&&”分隔符,组合成字符串“ab&&2”
*
* @author hf
*
*/
public class Text {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数组的长度n");
int n = scanner.nextInt();
String[] arrs = new String[n];
System.out.println("请输入带引号的数组内容,eg:“ab”");
for (int i = 0; i < arrs.length; i++) {
arrs[i] = scanner.next();
}
Biogs1_2 biogs1_2 = new Biogs1_2(arrs);
biogs1_2.hebing();
scanner.close();
}
}