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
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)
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]+" ");
}
}
}