[java]自异字符串数组操作类

来源:互联网 发布:oppo网络销售授权书 编辑:程序博客网 时间:2024/05/18 13:07

Java没有提供给我们数组添加元素的操作,但往往有些时候很需要。

使用借助ArrayList来达到字符串数组操作:

使用包:

import java.util.ArrayList;import java.util.List;

List<String> list = new ArrayList<String>();

//将数组元素添加到列表

for (int i = 0; i < arr.length; i++) {
      list.add(arr[i]);

}

//下标不再范围会报错;这里判断一下

if (w >= 0 && w < arr.length) {// 下标合法范围
     list.add(w, str);
} else {// 否则自动添加在末尾
     list.add(str);
}

String[] newArr = list.toArray(new String[1]); // 返回一个包含所有对象的指定类型的数组

//最终的结果就是 newArr 数组了。


例子:

ArrayS类:

import java.util.ArrayList;import java.util.List;public class ArrayS {/** * @author Yihrmc * @parameter {添加}add(操作StrArr,添加的元素,添加位置[非法下标,默认末尾]) *            {下标删除}removeIndex(操作StrArr,删除的元素下标) *            {指定删除}removeStr(操作StrArr,删除的元素) *            {删除重复}dereStr(操作StrArr) * @return Array */public static void main(String[] args) {String[] arr = new String[] { "asd", "dsf" };ArrayS as = new ArrayS();arr = as.add(arr, "0", 1);for (String str : arr) {System.out.println(str);}}// 添加字符串数组元素public String[] add(String[] arr, String str, int w) {List<String> list = new ArrayList<String>();for (int i = 0; i < arr.length; i++) {list.add(arr[i]);}if (w >= 0 && w < arr.length) {// 下标合法范围list.add(w, str);} else {// 否则自动添加在末尾list.add(str);}String[] newArr = list.toArray(new String[1]); // 返回一个包含所有对象的指定类型的数组return newArr;}// [下标]删除字符串数组元素public String[] removeIndex(String[] arr, int w) {List<String> list = new ArrayList<String>();for (int i = 0; i < arr.length; i++) {list.add(arr[i]);}list.remove(w);String[] newArr = list.toArray(new String[1]); // 返回一个包含所有对象的指定类型的数组return newArr;}// [字符串]删除字符串数组元素public String[] removeStr(String[] arr, String w) {List<String> list = new ArrayList<String>();for (int i = 0; i < arr.length; i++) {list.add(arr[i]);}list.remove(w);String[] newArr = list.toArray(new String[1]); // 返回一个包含所有对象的指定类型的数组return newArr;}// 删除字符串数组重复元素public String[] dereStr(String[] arr) {List<String> list = new ArrayList<String>();for (int i = 0; i < arr.length; i++) {if (!list.contains(arr[i])) {list.add(arr[i]);}}String[] newArr = list.toArray(new String[1]); // 返回一个包含所有对象的指定类型的数组return newArr;}}

测试:

public class Ta {public static void main(String[] args) {String[] ars=new String[]{"y","i","h","r","m","c","a","b","a","a"};System.out.println("原数组列表:");for(String str:ars){System.out.print(str + " ");}ArrayS ARS=new ArrayS();ars = ARS.add(ars, "h", 0);//添加元素System.out.println("\n添加h元素,后列表:");for(String str:ars){System.out.print(str + " ");}ars = ARS.removeIndex(ars,0);//删除元素System.out.println("\n删除[0]元素,后列表:");for(String str:ars){System.out.print(str + " ");}ars = ARS.removeStr(ars,"i");//删除元素System.out.println("\n删除i元素,后列表:");for(String str:ars){System.out.print(str + " ");}ars = ARS.dereStr(ars);//删除重复元素System.out.println("\n删除重复元素,后列表:");for(String str:ars){System.out.print(str + " ");}}}




1 0
原创粉丝点击