在一个一维数组中,如果已经存在一个一维数组,需要把其他不为零的项,存入一个新的一维数组中?
麻烦,最好上java代码,谢谢!!!
麻烦,最好上java代码,谢谢!!!
解决方案 »
- 关于char问题
- 关于用ListIterator遍历,修改,删除ArrayList的同步问题
- 如何对java Swing进行操作
- 新手请教 有调用关系的多个java源文件的编译???
- 有大连的JAVA人才吗
- 关于文件夹内文件批量重命名的问题,求助!
- 如何将Java Application嵌入到浏览器的工具栏和右键菜单中,像Flashget一样?
- java里类的成员函数的定义和申明可以分开么?
- byte b[] = "你".getBytes("iso-10646-ucs-2");如何把b[]转化回来,变成"你"?
- 如何用java显示bmp格式文件?非常渴望你的帮助!
- Java中静态方法如何体现预装载性?
- 请问这个程序有什么错误啊,编译通过了,就是运行不成,请高手回答,谢谢!
public class Test07 { public static void main(String[] args) {
int[] arr1 = {1,2,3,4,5,0,0,0,8,9};
int[] arr2 = new int[10];
int j = 0;
for(int i=0;i<arr1.length;i++){
if(arr1[i] != 0){
arr2[j++] = arr1[i];
}
}
for(int i=0;i<arr2.length;i++){
System.out.println(arr2[i]);
}
}}
{
public static void main(String[] args)
{
int[] oldArr={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
int[] newArr=new int[count(oldArr)];
copy(oldArr,newArr);
print(newArr);
}//统计所有不为0的元素的个数 public static int count(int[] data)
{
int count=0;
for(int x=0;x<data.length;x++)
{
if(data[x]!=0)
{
count++;
}
}
return count;
}//将旧数组中的不为0的元素拷贝到新的数组之中 public static void copy(int[] src,int[] data)
{
int foot=0;//表示数组的下标
for(int x=0;x<src.length;x++)
{
if(src[x]!=0)
{
data[foot++]=src[x];//取出里面不为0的内容
}
}
} public static void print(int[] data)
{
for(int x=0;x<data.length;x++)
{
System.out.print(data[x]+"、");
}
}
}
/**
* @param args
*
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] array = {1,2,3,5,8,0,6,7,8,0};//定义一个含零的数组
int count = 0;//定义个计数器,计算数组中含几个零
/*
* 用for循环把0放到了数组末尾,并计算出含了多少个0
*/
for(int i = 0;i < array.length - 1 ; i++){
if(array[i] == 0){
count++;
System.arraycopy(array,i+1,array,i,array.length - i - 1);
}
}//end for
int[] newArray = new int[array.length - count];//创建一个新数组,由于已经计算出来含多少0,所以不再浪费空间
System.arraycopy(array,0,newArray,0,newArray.length);//把除去末尾含0的数组项全部复制到新数组中,大功告成。
for(int a:newArray){
System.out.println(a);
}
}
}
/**
* @param args
*
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] array = {1,2,3,5,0,4,6,7,8,0,1};//定义一个含零的数组
int count = 0;//定义个计数器,计算数组中含几个零
/*
* 用for循环把0放到了数组末尾,并计算出含了多少个0
*/
for(int i = 0;i < array.length ; i++){
if(array[i] == 0){
count++;
System.arraycopy(array,i+1,array,i,array.length - i - 1);
}
}//end for
int[] newArray = new int[array.length - count];//创建一个新数组,由于已经计算出来含多少0,所以不再浪费空间
System.arraycopy(array,0,newArray,0,newArray.length);//把除去末尾含0的数组项全部复制到新数组中,大功告成。
for(int a:newArray){
System.out.println(a);
}
}
}
package com.test;import java.util.Scanner;public class TestMain {
public static void main(String[] args){
numToUpperTest();
}
public static void numToUpperTest(){
System.out.println("输入>>>>>\n");
Scanner sc = new Scanner(System.in);
int m = sc.nextInt();
String s = m+"";
char[] ch2 = s.toCharArray();
System.out.println("你输入的是" + s);
String str = "";
A: for(int i = (s.length() - 1); i >= 0;i--){
if(i < (s.length()-1) && ch2[i] == ch2[i+1] && ch2[i] == '0'){
}else{
if(!( ch2[i] == '0' )){
str=ch2[i]+str;
}
}
}
//除去最后一个零
if(str.charAt(str.length()-1) == '0' ){
str = str.substring(0 , str.length()-1); //实现消除末尾的方法
}
System.out.println("经过转化的数为 :" + str );
}
}
public static void main(String[] args){
numToUpperTest();
}
public static void numToUpperTest(){
System.out.println("输入>>>>>\n");
Scanner sc = new Scanner(System.in);
int m = sc.nextInt();
String s = m+"";
char[] ch2 = s.toCharArray();
System.out.println("你输入的是" + s);
String str = "";
A: for(int i = (s.length() - 1); i >= 0;i--){
if(i < (s.length()-1) && ch2[i] == ch2[i+1] && ch2[i] == '0'){
}else{
if(!( ch2[i] == '0' )){
str=ch2[i]+str;
}
}
}
//除去最后一个零
if(str.charAt(str.length()-1) == '0' ){
str = str.substring(0 , str.length()-1); //实现消除末尾的方法
}
System.out.println("经过转化的数为 :" + str );
}
}
public int[] arrayPlus(int[] array){
int[] temp=new int[array.length];
int j=0;
for(int i=0;i<array.length;i++){
if(array[i]!=0){
temp[j]=array[i];
j++;
}
}
int[] result=new int[j];
System.arraycopy(temp, 0, result, 0, j);
return result;
}估计楼主不是不懂写 可能楼主是想性能再稍微好一些吧 那么这时候借鉴别人也是一个不错的注意 楼主这个是我能写的最好性能的了
/**
* @param args
*
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] array = {1,2,3,0,6,7,8,0,1};//定义一个含零的数组
int count = 0;//定义个计数器,计算数组中含几个零
/*
* 用for循环把0放到了数组末尾,并计算出含了多少个0
*/
for(int i = 0;i < array.length ; i++){
if(array[i] == 0){
count++;
System.arraycopy(array,i+1,array,i,array.length - i - 1);
i--;
}
}//end for
int[] newArray = new int[array.length - count];//创建一个新数组,由于已经计算出来含多少0,所以不再浪费空间
System.arraycopy(array,0,newArray,0,newArray.length);//把除去末尾含0的数组项全部复制到新数组中,大功告成。
for(int a:newArray){
System.out.println(a);
}
}
}ok了,只要再次判断一下,就好了,加了一个i--的语句,:-),是我大意了。
public static void main(String[] args) {
int[] ary=new int[]{1,3,5,6,0,0,9};
int[] ary1=new int[]{};
int j=0;
for(int i=0;i<ary.length;i++)
{
if(ary[i]==0)
{
continue;
}
ary1=Arrays.copyOf(ary1, ary1.length+1);
ary1[j++]=ary[i];
}
System.out.println(Arrays.toString(ary1));
}}
这个是用数组扩容做的
public class Main { public static void main(String[] args) {
int[] arr1 = {1, 2, 3, 4, 5, 0, 0, 0, 8, 9, 5, 8, 7, 9, 10, 4, 5, 8, 1, 5};
int[] arr2 = new int[100];
int j = 0;
for(int i = 0; i < arr1.length; i++){
if(arr1[i] != 0){
arr2[j++] = arr1[i];
}
}
for(int i = 0; i < arr2.length; i++){
System.out.println(arr2[i]);
}
}}
public class Qvo {
public static void main(String[] args) {
int[] array = {1,2,3,0,61,0,0,7,8,0,1};
ArrayList<Integer> w=new ArrayList<Integer>();
for(int i=0;i<array.length;i++){
if(array[i] != 0){
w.add(array[i]);
}
}
System.out.println(w); }}
可能是我想多了。。
import java.util.ArrayList;
import java.util.Arrays;public class Test { public static void main(String[] args) {
Integer[] myArray = fun(new Integer[]{1,2,0,9,0,2,3},new Integer[]{0,2,5});
for(Integer integer : myArray)
System.out.print(integer + " ");
} static Integer[] fun(Integer[] array,Integer[] removeArray){
ArrayList<Integer> arrayList1 = new ArrayList<Integer>();
ArrayList<Integer> arrayList2 = new ArrayList<Integer>();
arrayList1.addAll(Arrays.asList(array));
arrayList2.addAll(Arrays.asList(removeArray));
arrayList1.removeAll(arrayList2);
Integer[] newArray = new Integer[arrayList1.size()];
arrayList1.toArray(newArray);
return newArray;
}
}