相遇'不要钱'

导航

java基础面试题

import java.util.Arrays;

public class Demo {

    /**
     * 常用面试题
     */
    public static void main(String[] args) {
        //质素
        toPrime();
        //冒泡排序
        toSort();
        //找出1-1001中没有被装到两个数组中的数字
        toQuery();
        //找出一个数组中的最大值,最小值
        toMaxAndMin();
        //反序输出
        toReverse();
        //字符串截取,排除中文
        toRemove();
        //数组移位
        toMove();
        //数组交换
        toChange();
        //复制
        toCopy();
    }
    
    //找出1-100之内的质素/素数
    public static void toPrime(){
        int i,j;
        System.out.println("1-100之内的质素:");
        for (i= 2; i <=100; i++) {
            for (j = 2; j <=i/2; j++) {
                if(i%j==0){//排除i的倍数
                    break;
                }
            }
            if(j>(i/2)){
                System.out.print(i+" ");
            }
        }
    }

    //冒泡排序
    public static void toSort(){
        int arr[]=new int[]{213,45,57,2,5,8,23,54,56,5646,1};
    /*    for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr.length-1-i; j++) {
                if(arr[j]>arr[j+1]){
                    int temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }*/
        Arrays.sort(arr);
        System.out.println();
        System.out.println("冒泡排序:");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+" ");
        }
    }
    
    //1~100共一百个自然数,放入一个只有99个元素的数组中,找出没有被放入数组的这个数
    public static void toQuery(){
        int arr1[]=new int[]{1,2,3,4,5,6,7,8,9};
        int arr2[]=new int[]{1,2,3,4,5,6,7,8,9,10};
        int sumA=0;
        int sumB=0;
        for (int i = 0; i < arr1.length; i++) {
            sumA+=arr1[i];
        }
        for (int i = 0; i < arr2.length; i++) {
            sumB+=arr2[i];
        }
        
        int n=sumB-sumA;
        System.out.println();
        System.out.println("1-100的自然数中"+n+"没有被赋值到数组中");
    }
    //求出数组中的最大值,最小值
    public static void toMaxAndMin(){
        int arr[]=new int[]{23,32,67,2,6578,4};
        int max=arr[0];
        int min=arr[0];
        for (int i = 1; i < arr.length; i++) {
            if(min>arr[i]){
                min=arr[i];
            }
            if(max<arr[i]){
                max=arr[i];
            }
        }
        System.out.println("最大值max="+max+"\t最小值min="+min);
    }
    //将一个数字或字符串反序输出,例如:123--321
    public static void toReverse(){
        int n=123456;
        //转换成字符串
        String str=String.valueOf(n);
        System.out.println("正序输出:"+str);
        System.out.print("反序输出:");
        /*for (int i =str.length()-1; i >=0; i--) {
            System.out.print(str.charAt(i));
        }*/
        //转换成数组
        /*char ch[]=str.toCharArray();
        for (int i = 0; i < ch.length; i++) {
            System.out.print(ch[i]);
        }*/
    
        StringBuffer buff=new StringBuffer(str);
        System.out.println(buff.reverse().toString());
    }
    //截取数字,排除中文字符
    public static void toRemove(){
        int n=0;
        String str="I Love 中国";
        for (int i = 0; i < str.length(); i++) {
            if(str.charAt(i)>'\u00ff'){
                n++;
            }
        }
        System.out.print("截取字符串,排除中文:");
        System.out.println(str.substring(0,str.length()-n));
    }
    
    //数组移位,将0移到最后面,前面的数字依次向前移位
    public static void toMove(){
        int arr[]=new int[]{12,45,8,0,234,2,5,6};
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]==0 && (i+1)<arr.length){
                int temp=arr[i];
                arr[i]=arr[i+1];
                arr[i+1]=temp;
            }
        }
        //排序
        //Arrays.sort(arr);
        System.out.print("数组移位:");
        for (int s = 0; s < arr.length; s++) {
            System.out.print(arr[s]+" ");
        }
    }
    
    //数组交换数字,将0与最后一位数字交换位置
    public static void toChange(){
        int arr[]=new int[]{12,45,8,0,234,2,5,6};
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]==0){
                int temp=arr[arr.length-1];
                 arr[arr.length-1]=arr[i];
                 arr[i]=temp;
            }
        }
        System.out.println();
        System.out.print("交换后的数组:");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+" ");
        }
    }
    //数组复制
    public static void toCopy(){
        int arr[]=new int[]{12,45,8,0,234,2,5,6};
        int num[]=new int[arr.length-1];
        for (int i = 0; i < num.length; i++) {
            num[i]=arr[i];
        }
        System.out.println();
        System.out.print("复制后的数组:");
        for (int i = 0; i < num.length; i++) {
            System.out.print(num[i]+" ");
        }
    }
    
}

posted on 2014-04-12 17:28  相遇'不要钱'  阅读(417)  评论(0)    收藏  举报