public class aa { public static void main(String[] args) { //求最大公约数以及公倍数 int a=2; int b=4; int max=b>a?b:a; int min=b<a?b:a; //最小公倍数 for (int i = max; i <=a*b; i++) { if(i%min==0&&i%max==0){ System.out.PRintln(i); break; } } //最大公约数 for (int i = min; i >= 1; i--) { if(min%i==0&&max%i==0){ System.out.println(i); break; } } //整形数据,有+有-。求出 相邻数字和最大的数字组合 的和 int[] arr=new int[]{1,-2,3,10,-4,7,2,-5}; int sum=0; int temp=sum; for (int i : arr) { temp+=i; if(temp<0) temp=0; if(temp>sum) sum=temp; } if(sum==0){ sum=arr[0]; for (int i = 1; i < arr.length; i++) { if(arr[i]>sum) sum=arr[i]; } } System.out.println(sum); //冒泡 System.out.print("冒泡排序,原数组为:"); for (int i : arr) { System.out.print(i+" "); } System.out.print(" 排序后:"); for (int i = 0; i < arr.length; i++) { for (int j = i+1; j < arr.length; j++) { if(arr[i]<arr[j]) swap(arr,i,j); } } for (int i : arr) { System.out.print(i+" "); } System.out.println(""); //直接选择 System.out.print("直接选择排序,原数组为:"); for (int i : arr) { System.out.print(i+" "); } System.out.print(" 直接选择排序后:"); for (int i = 0; i < arr.length; i++) { int index=i; for (int j = i+1; j < arr.length; j++) { if(arr[index]>arr[j]) index=j; } swap(arr, i, index); } for (int i : arr) { System.out.print(i+" "); } System.out.println(""); //整个字符串反转 String str="abcdefg"; char[] c=str.toCharArray(); int index=c.length; for (int i = 0; i < c.length/2; i++) { swap(c, i, index-1); index--; } System.out.println(str+"整个字符串反转:"+String.valueOf(c)); str=String.valueOf(c); //指定字符串反转 String key="fedcb";//指定的字符串 //取得指定字符串的坐标 int start =str.indexOf(key); int end=start+key.length(); index=end; for (int i = start; i < end/2; i++) { swap(c, i, index-1); index--; } System.out.println(str+" 自定字符串为"+key+" 指定字符串反转:"+String.valueOf(c)); //反转单词顺序 单词不变 如 i am a student.=>student. a am i str="i am a student."; String temp1=str; int WordCount=str.split(" ").length; String s=""; for (int i = 0; i < wordCount; i++) { if(true==temp1.contains(" ")){ String buff=temp1.substring(temp1.lastIndexOf(" ")+1,temp1.length()); temp1=temp1.substring(0, temp1.lastIndexOf(" ")); s+=buff+" "; }else s+=temp1; } System.out.println("反转单词顺序 单词不变 "+str+"反转后:"+s); //有两个字符串 匹配出最长相同的子串 如 abcdhellocde seerhellocadasabad ->helloc String s1="abcdhellocde"; String s2="sabcdheeerhellocadasabad"; int length=s1.length(); boolean flag=false; for (int i = length; i > 0&&!flag; i--) { //控制匹配长度 for (int j = 0; j <= length-i; j++) {//控制位置 String buff=s1.substring(j, i+j); if(s2.contains(buff)){ System.out.println("s1:abcdhellocde,s2:sabcdheeerhellocadasabad 匹配最长相同子串为:"+buff); flag=true; continue;//防止有多条一样长度的字符串,没有全部被找到 } } } } public static void swap(char[] arr,int index1,int index2){ char temp=arr[index1]; arr[index1]=arr[index2]; arr[index2]=temp; } public static void swap(int[] arr,int index1,int index2){ int temp=arr[index1]; arr[index1]=arr[index2]; arr[index2]=temp; }}
新闻热点
疑难解答