JAVA——基本字元操作(二)
阿新 • • 發佈:2018-12-09
JAVA——基本字元操作、
本文通過一個例子,來展示兩個字元集合間的對比結果。
1.要求
設有兩字串構成的集合,字串內容值為 A:{a,b,c,d,e,f,g,in,off,about,get} B:{f,g,a,come,get,go} 求出:(1)AB集合的交集。 (2)只在A集中出現的字串集合。 (3)AB集合的並集。
2.程式碼
import java.util.Arrays;
import java.util.List;
public class dyrw15 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//建立字串陣列,並賦值
String[] arr1 = {"a","b","c","d","e","f","g","in","off","about","get"};
String[] arr2 = {"f","g","a","come","get","go"};
//測試AB集合的交集,呼叫intersect方法
String[] arr3 = intersect(arr1,arr2);
System.out .print("AB集合的交集如下:\n");
for(int i=0;i<arr3.length;i++)
{
//遍歷輸出結果字串陣列
if(arr3[i] != null)
{
System.out.print(arr3[i]+" ");
}
}
System.out.println();
System.out.println(".............................分隔線............................." );
//測試只在A集中出現的字串集合,呼叫method方法
String[] arr4 = method(arr1,arr2);
System.out.print("只在A集中出現的字串集合:\n");
for(int i=0;i<arr4.length;i++) {
//遍歷輸出結果字串陣列
if(arr4[i] != null) {
System.out.print(arr4[i]+" ");
}
}
System.out.println();
System.out.println(".............................分隔線.............................");
//測試AB集合的並集,呼叫union方法
String[] arr5 = union(arr1,arr2);
System.out.print("AB集合的並集如下:\n");
for(int i=0;i<arr5.length;i++) {
//遍歷輸出結果字串陣列
if(arr5[i] != null) {
System.out.print(arr5[i]+" ");
}
}
}
//(1)AB集合的交集。
public static String[] intersect(String[] a1,String[] a2) {
String[] a3 = new String[10];//建立字串陣列物件
//(存在一定缺陷,不夠靈活,不知道該陣列中元素個數)
int k = 0;
for(int i=0;i<a1.length;i++) {
for(int j=0;j<a2.length;j++) {
if(a1[i].equals(a2[j])) {//判斷兩元素是否相同
a3[k] = a1[i];//相同則記錄到新的陣列中
k++;
}
}
}
return a3;
}
//(2)只在A集中出現的字串集合。
public static String[] method(String[] a1,String[] a2) {
String[] a3 = new String[10];//建立字串陣列物件
int k = 0;
for(int i=0;i<a1.length;i++) {
List<String> list = Arrays.asList(a2);//將字串陣列a2轉換成list
if(!list.contains(a1[i]))
{
//呼叫list的contains方法,判斷list中是否含有某元素
a3[k] = a1[i];//不含,則記錄到新陣列中
k++;
}
}
return a3;
}
//(3)AB集合的並集。
public static String[] union(String[] a1,String[] a2) {
String[] a3 = new String[20];//建立字串陣列物件
System.arraycopy(a1, 0, a3, 0, a1.length);
//實現陣列之間的複製,先將A集合中的元素全部複製入新陣列中(源陣列,源陣列要複製的起始位置,目的陣列,目的陣列放置的起始位置,複製的長度)
int k = a1.length;
List<String> list = Arrays.asList(a1);
for(int i=0;i<a2.length;i++) {
if(!list.contains(a2[i])) {
//呼叫list的contains方法,判斷list中是否含有某元素
a3[k+1] = a2[i];//不含,則把B集合中的元素加入到新陣列中
k++;
}
}
return a3;
}
}
3.結果
編譯結果如下圖所示: 執行結果如下圖所示: