建立一个临时数组 定义一个length来记录新加入的元素个数 然后把a b 的元素逐个加入到新数组中 加入前先用ArraysbinarySearch 检查新数组中是否已经有该元素 最后返回
以下代码仅供参考
import javautilArrays;public class TestCircle {
public static void main(String args[]) {
int[] a = new int[] { 1, 3, 5, 2, 9, 5 };
int[] b = new int[] { 2, 5, 7, 10, 9, 11 };
int[] temp = addArray(a, b);
Systemoutprint("[");
for (int i : temp) {
Systemoutprint(i + " ");
}
Systemoutprint("]");
}
static int[] addArray(int[] a, int[] b) {
int[] temp = new int[alength + blength];
int length = 0;
for (int i : a) {
Arrayssort(temp);
if (ArraysbinarySearch(temp, i) < 0) {
temp[templength - length - 1] = i;
length++;
}
}
for (int i : b) {
Arrayssort(temp);
if (ArraysbinarySearch(temp, i) < 0) {
temp[templength - length - 1] = i;
length++;
}
}
return ArrayscopyOfRange(temp, templength - length, templength);
}
}
若你能保证a中的元素都是无重复的话 可以简化成以下
import javautilArrays;public class TestCircle {
public static void main(String args[]) {
int[] a = new int[] { 1, 3, 5, 2, 9 };
int[] b = new int[] { 2, 5, 7, 10, 9, 11 };
Arrayssort(a);
int[] temp = addArray(a, b);
Systemoutprint("[");
for (int i : temp) {
Systemoutprint(i + " ");
}
Systemoutprint("]");
}
/
这里a数组必须是有序不重复的
/
static int[] addArray(int[] a, int[] b) {
int[] temp = ArrayscopyOf(a, alength + blength);
int length = alength;
for (int i : b) {
if (ArraysbinarySearch(a, i) < 0) {
temp[length] = i;
length++;
}
}
return ArrayscopyOf(temp, length);
}
}/用最简单的基础计算随便写的 ,如果你要是字符串数组,那就循环数组 执行aaa方法……
你改一下返回值也可以,执行完返回一个数组……对象/
int n2[]; //最终得到的数组,以下得到可变化长度的n2数组
public void aaa(String s){ //传入字符串测试 String s="cd234sn3245ji34fn&^345&%";
String num=""; //储存连续数字的字符串
int n1=0,n3=0,n4=0; //变量,用来进行简单计算
char[] c_1=stoCharArray(); //将字符串转化为字符数组
for (int i = 0; i < c_1length; i++) {
int o=CharactergetNumericValue(c_1[i]); //字符转化为数字
if (o>=0&&o<=9){
num=num+c_1[i]; //储存连续数字
n4=1; //用来做下面的if判断
if(i!=(c_1length-1)){ //判断,当达到最后一个时候,不再执行continue;
continue;
}
}
if(n4==1){ //-------------------当n4=1执行
n4=0; //-------------------执行一次 还原为0
n1=IntegerparseInt(num); /------/将连续数字字符串转化为整型
num=""; //-----------------还原为空
int []n2 = new int[n3+1]; //--------创建局部的n2数组
if(n3!=0){ //--------------------/第一次执行因为thisn2没有初始化,所以不执行 *** 作
for (int i1 = 0; i1 < thisn2length; i1++) {
n2[i1]=thisn2[i1]; //-------------------当thisn2的length!=0时,首先替换局部n2值
}
}
n2[n3]=n1; //-----------将最后一个值 传入参数
thisn2=n2; //----------------- 重新覆盖n2数组
n3++;
}
}
}
//---------------------------------------------main{}测试 String str = "23,12,3,454,34,111,23";
String[] arr = strsplit(",");
int[] intArr = new int[arrlength];
for(int i = 0; i< arrlength; i++){
intArr[i] = IntgerparseInt(arr[i]);
}删除空格这样:
String str=" hello world ";
str=strreplaceAll("\\s+","");
这样就没有空格了,不用那么麻烦
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)