【程序45】 题目:判断一个素数能被几个9整除 //题目错了吧?能被9整除的就不是素数了!所以改成整数了。import java.util.*;public class lianxi45 { public static void main (String[] args) { Scanner s = new Scanner(System.in); System.out.print("请输入一个整数:"); int num = s.nextInt(); int tmp = num; int count = 0; for(int i = 0 ; tmp%9 == 0 ;){ tmp = tmp/9; count ++; } System.out.println(num+" 能够被 "+count+" 个9整除。"); }} 【程序46】 题目:两个字符串连接程序 import java.util.*;public class lianxi46 {public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.print("请输入一个字符串:"); String str1 = s.nextLine(); System.out.print("请再输入一个字符串:"); String str2 = s.nextLine(); String str = str1+str2; System.out.println("连接后的字符串是:"+str); } } 【程序47】 题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。 import java.util.*;public class lianxi47 {public static void main(String[] args) {Scanner s = new Scanner(System.in);int n=1,num;while(n<=7){ do{ System.out.print("请输入一个1--50之间的整数:"); num=s.nextInt(); }while(num<1||num>50); for(int i=1;i<=num;i++) {System.out.print("*"); }System.out.println();n ++;}}} 【程序48】 题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。 import java.util.*;public class lianxi48 { public static void main(String args[]) { Scanner s = new Scanner(System.in);int num=0,temp;do{ System.out.print("请输入一个4位正整数:"); num = s.nextInt(); }while (num<1000||num>9999); int a[]=new int[4]; a[0] = num/1000; //取千位的数字 a[1] = (num/100)%10; //取百位的数字 a[2] = (num/10)%10; //取十位的数字 a[3] = num%10; //取个位的数字 for(int j=0;j<4;j++) { a[j]+=5; a[j]%=10; } for(int j=0;j<=1;j++) { temp = a[j]; a[j] = a[3-j]; a[3-j] =temp; } System.out.print("加密后的数字为:"); for(int j=0;j<4;j++) System.out.print(a[j]); } } 【程序49】 题目:计算字符串中子串出现的次数 import java.util.*;public class lianxi49 { public static void main(String args[]){Scanner s = new Scanner(System.in); System.out.print("请输入字符串:"); String str1 = s.nextLine(); System.out.print("请输入子串:"); String str2 = s.nextLine();int count=0; if(str1.equals("")||str2.equals("")) { System.out.println("你没有输入字符串或子串,无法比较!"); System.exit(0); } else { for(int i=0;i<=str1.length()-str2.length();i++) { if(str2.equals(str1.substring(i, str2.length()+i))) //这种比法有问题,会把"aaa"看成有2个"aa"子串。 count++; } System.out.println("子串在字符串中出现: "+count+"次"); } }} 【程序50】 题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,把原有的数据和计算出的平均分数存放在磁盘文件 "stud "中。import java.io.*; import java.util.*;public class lianxi50 { public static void main(String[] args){ Scanner ss = new Scanner(System.in); String [][] a = new String[5][6]; for(int i=1; i<6; i++) { System.out.print("请输入第"+i+"个学生的学号:"); a[i-1][0] = ss.nextLine(); System.out.print("请输入第"+i+"个学生的姓名:"); a[i-1][1] = ss.nextLine(); for(int j=1; j<4; j++) { System.out.print("请输入该学生的第"+j+"个成绩:"); a[i-1][j+1] = ss.nextLine(); }System.out.println("\n"); }//以下计算平均分float avg;int sum;for(int i=0; i<5; i++) {sum=0; for(int j=2; j<5; j++) { sum=sum+ Integer.parseInt(a[i][j]); } avg= (float)sum/3; a[i][5]=String.valueOf(avg);}//以下写磁盘文件 String s1; try { File f = new File("C:\\stud"); if(f.exists()){ System.out.println("文件存在"); }else{ System.out.println("文件不存在,正在创建文件"); f.createNewFile();//不存在则创建 } BufferedWriter output = new BufferedWriter(new FileWriter(f)); for(int i=0; i<5; i++) {for(int j=0; j<6; j++) { s1=a[i][j]+"\r\n"; output.write(s1); }}output.close(); System.out.println("数据已写入c盘文件stud中!"); } catch (Exception e) { e.printStackTrace(); } }} 自己写的程序: 1、判断一个数是否为素数 publicclass lianxi33 { publicstaticvoid main(String[] args) { for (int i = 1; i <=10000; i++) { int n = i; if (isPrime(n)) { System.out.println(i + "是素数"); } } } // 输入一个数判断其是否为素数 publicstaticboolean isPrime(int n) { if (n <= 1) { returnfalse; } if (n == 2) { returntrue; } if (n % 2 == 0) { returnfalse; } for (int i = 3; i <= (int) (Math.floor(Math.sqrt(n))) +1; i = i + 2) { if (n % i == 0) { returnfalse; } } returntrue; } } 2、二分法查找 publicclass BinarySearch { publicstaticint binarySearch(int[] a, int x) { // 在a[0]<=a[1]<=...<=a[n-1]中搜索x // 找到x则返回x的所在位置,否则返回-1 int left = 0; int right = a.length - 1; while (left <= right) { int middle = (left + right) / 2; if (x == a[middle]) return middle; if (x > a[middle]) left = middle + 1; else right = middle - 1; } return -1; } publicstaticvoid main(String[] args) { int[] a = { 0, 1, 3, 6, 7, 10, 21, 34, 36, 40,76 }; int x = 34;// 设定要查找的数 int position = binarySearch(a, x); System.out.println(x + "在数组中的位置是" + position); } } 2、 比较器二分查找 import java.util.TreeSet; importjava.util.Iterator; publicclass Student implements Comparable { privateintid; private String name; private String dengji; public Student (int id, String name, String dengji) { this.id = id; this.name = name; this.dengji=dengji; } publicvoid setId (int id) { this.id = id; } publicvoid setName (String name) { this.name = name; } publicvoid setDengji (String dengji) { this.dengji = dengji; } publicint getId () { returnid; } public String getName () { returnname; } public String getdengji () { returndengji; } /* Student 类的字符串表达式,形如: * 2 张三 */ public String toString () { return (id + "\t" + name+"\t" + dengji); } /* 实现 Comparable 接口中的 compareTo 方法, * 通常大于时返回一个正数,小于时返回一个负数, * 等于时返回零,具体情况可以自行决定。 ********************************************************* * 这里我根据 id 号的大小进行了比较。由于 TreeSet * 会根据 compareTo 的结果来排序,因此输出结果 * 应该是按照 id 号从小到大排序的。 * 如果要根据姓名进行排序,只需对这个方法进行相应的修改。*/ publicint compareTo (Student arg) { if (id > arg.id) return 1; elseif (id == arg.id) return 0; else return -1; } /* 以下为主方法,输出结果是: * 3 John * 5 Tom * 7 Alice * 9 David * 可以看到不同于输入顺序, * TreeSet 已经将其排序了。*/ publicstaticvoid main (String args[]) { TreeSet tset = new TreeSet(); tset.add(new Student(5, "Tom" , "a")); tset.add(new Student(3, "John", "b" )); tset.add(new Student(9, "David", "c" )); tset.add(new Student(7, "Alice" , "d")); Iterator itor =tset.iterator(); while (itor.hasNext()) { System.out.println(itor.next().toString()); } } } ************************************************************************************************************************************************************** BinarySearch importjava.util.Comparator; publicclass BinarySearch { publicstatic > int binarySearch(T[] a, T x, Comparator comparator) { if (a == null) { thrownew IllegalArgumentException("被查找数组为null!"); } elseif (x == null) { thrownew IllegalArgumentException("被查询元素为null!"); } int left = 0; int right = a.length - 1; while (left <= right) { int middle = (left + right) / 2; if (comparator != null) { if (comparator.compare(x, a[middle]) == 0) return middle; if (comparator.compare(x, a[middle]) > 0) left = middle + 1; else right = middle - 1; } else { if(x.compareTo(a[middle])==0) return middle; if(x.compareTo(a[middle])>0) left = middle + 1; else right = middle - 1; } } return -1; } publicstaticvoid main(String[] args) { Student[] a = new Student[4]; a[0] = (new Student(3, "Tom")); a[1] = (new Student(5, "John")); a[2] = (new Student(7, "David")); a[3] = (new Student(9, "Alice")); Student x = new Student(7, "John");// 设定要查找的数 int position = binarySearch(a, x, new StudentComparator()); System.out.println(x + "在数组中的位置是" + position); } } Student import java.util.TreeSet; import java.util.Iterator; public class Student implementsComparable { privateint id; privateString name; publicStudent (int id, String name) { this.id = id; this.name = name; } publicvoid setId (int id) { this.id = id; } publicvoid setName (String name) { this.name = name; } publicint getId () { return id; } public String getName () { return name; } /*Student 类的字符串表达式,形如: *2 张三 */ publicString toString () { return (id + "\t" + name+"\t" ); } /* 实现 Comparable 接口中的 compareTo方法, * 通常大于时返回一个正数,小于时返回一个负数, * 等于时返回零,具体情况可以自行决定。 ********************************************************* * 这里我根据 id 号的大小进行了比较。由于 TreeSet * 会根据 compareTo 的结果来排序,因此输出结果 * 应该是按照 id 号从小到大排序的。 * 如果要根据姓名进行排序,只需对这个方法进行相应的修改。*/ publicint compareTo (Student arg) { if (id > arg.id) return 1; else if (id == arg.id) return 0; else return -1; } /* 以下为主方法,输出结果是: *3 John *5 Tom *7 Alice *9 David * 可以看到不同于输入顺序, *TreeSet 已经将其排序了。*/ publicstatic void main (String args[]) { TreeSet tset = new TreeSet(); tset.add(new Student(5, "Tom" )); tset.add(new Student(3, "John")); tset.add(new Student(9, "David")); tset.add(new Student(7, "Alice")); Iterator itor = tset.iterator(); while (itor.hasNext()) { System.out.println(itor.next().toString()); } } } StudentComparator importjava.util.Comparator; /** * Student 比较器 */ publicclass StudentComparator implements Comparator { @Override publicint compare(Student s1, Student s2) { if(s1.getId()>s2.getId()) return 1; elseif(s1.getId()==s2.getId()) return 0; else return -1; } } package test1; /** * Title: Hello Java World * Description: 简单的Java程序,只显示一个信息。 * filename: HelloWorld.java */ public class HelloWorld { public static void main(String[] args) { System.out.println("Hello Java World!"); } } package test2; /** * Title: Java语言流程演示 * Description: 演示Java中几种常用的流程控制操作 * Filename: flowDome.java */ public class flowDemo{ public static void main(String[] arges){ int iPara1,iPara2,iEnd; if(arges.length!=3) { System.out.println("USE :javaflowDome parameter1 parameter2 circle"); System.out.println("parameter1 : 比较条件1,数字类型"); System.out.println("parameter2 : 比较条件2,数字类型"); System.out.println("circle :循环次数"); System.out.println("ego:java flowDome1 2 5"); return; }else{ iPara1 = Integer.parseInt(arges[0]); iPara2 = Integer.parseInt(arges[1]); iEnd = Integer.parseInt(arges[2]); } //if语句 if(iPara2>iPara1) { System.out.println("if 条件满足!"); System.out.println("第2个数比第1个数大!"); } else { System.out.println("if 条件不满足!"); System.out.println("第2个数比第1个数小!"); } //for循环操作 for(int i=0;i方法说明:校验电子邮件 *
输入参数:StringsPara 被校验的电子邮件字符 *
返回类型:boolean 如果校验的格式符合电子邮件格式返回true;否则返回false */ public boolean isMail(String sPara){ for(int i=0;i方法说明:判断是否是数字 *
输入参数:StringsPara。 需要判断的字符串 *
返回类型:boolean。如果都是数字类型,返回true;否则返回false */ public boolean isNumber(String sPara){ int iPLength = sPara.length(); for(int i=0;i方法说明:判断是否都是英文字符 *
输入参数:StringsPara。要检查的字符 *
返回类型:boolean。如果都是字符返回true;反之为false */ public boolean isString(String sPara){ int iPLength = sPara.length(); for(int i=0;i方法说明:判断是否是闰年 *
输入参数:int iPara。要判断的年份 *
返回类型:boolean。如果是闰年返回true,否则返回false */ public boolean chickDay(int iPara){ return iPara%100==0&&iPara%4==0; } /** *
方法说明:检查日期格式是否正确 *
输入参数:StringsPara。要检查的日期字符 *
返回类型:int 0 日期格式正确,-1 月或这日不合要求, -2 年月日格式不正确 */ public int chickData(String sPara){ @SuppressWarnings("unused") boolean bTemp = false; //所输入日期长度不正确 if(sPara.length()!=10) return -2; //获取年 String sYear = sPara.substring(0,4); //判断年是否为数字 if(!isNumber(sYear)) return -2; //获取月份 String sMonth = sPara.substring(5,7); 2011 05 05 //判断月份是否为数字 if(!isNumber(sMonth)) return -2; //获取日 String sDay = sPara.substring(8,10); //判断日是否为数字 if(!isNumber(sDay)) return -2; //将年、月、日转换为数字 int iYear =Integer.parseInt(sYear); int iMon = Integer.parseInt(sMonth); int iDay = Integer.parseInt(sDay); if(iMon>12) return -1; //闰年二月处理 if(iMon==2&&chickDay(iYear)){ if(iDay>29) return 2; }else{ if(iDay>iMonth[iMon-1]) return -1; } return 0; } /** *
方法说明:主方法,测试用 *
输入参数: *
返回类型: */ public static void main(String[] arges){ myArray mA = new myArray(); //校验邮件地址 boolean bMail = mA.isMail("tom@163.com"); System.out.println("1 bMail is"+bMail); bMail = mA.isMail("tom@163com"); System.out.println("2 bMail is"+bMail); //演示是否是数字 boolean bIsNum = mA.isNumber("1234"); System.out.println("1:bIsNum="+bIsNum); bIsNum = mA.isNumber("123r4"); System.out.println("2:bIsNum="+bIsNum); //演示是否是英文字符 boolean bIsStr = mA.isString("wer"); System.out.println("1:bIsStr="+bIsStr); bIsStr = mA.isString("wer3"); System.out.println("2:bIsStr="+bIsStr); //演示检查日期 int iIsTime =mA.chickData("2003-12-98"); System.out.println("1:iIsTime="+iIsTime); iIsTime = mA.chickData("2003-111-08"); System.out.println("2:iIsTime="+iIsTime); iIsTime = mA.chickData("2003-10-08"); System.out.println("3:iIsTime="+iIsTime); iIsTime = mA.chickData("2000-02-30"); System.out.println("4:iIsTime="+iIsTime); } } package test4; import java.util.*; /** * Title: 矢量操作< * Description: 演示一个矢量(Vector)的基本操作 * Filename: operateVector.java */ public class operateVector { /**
方法说明:生成一个4*4的二维Vector,供使用。*
输入参数:*
输出变量:Vector*
其它说明:*/ public Vector