1.String类的常用方法(StringExample.java)
package step1;public class StringExample {public static void main(String args[]) {String s1 = new String("you are a student");String s2 = new String("how are you");// 使用equals方法判断s1与s2是否相同if ( (s1.equals(s2)==true )) {System.out.println("s1与s2相同");} else {System.out.println("s1与s2不相同");}String s3 = new String("13971918888");// 判断手机号是否以“139”开头if(s3.startsWith("139")==true ) {System.out.println("手机号以139开头");}String s4 = new String("你"), s5 = new String("我");// 按着字典序s4大于s5的表达式if ( s4.compareTo(s5)>0 ) {System.out.println("按字典序s4大于s5");} else {System.out.println("按字典序s4小于s5");}/******************************************************/int position = 0;String path = "d:\\java\\A.java";// 获取path中最后出现\\的位置position = path.lastIndexOf("\\") ;System.out.println(path + "中最后出现\\的位置为: " + position);// 利用字符串截取方法获取path中“A.java”子字符串String fileName = path.substring(8, 14);System.out.println(path + "中含有的文件名为: " + fileName);/******************************************************/String s6 = new String("100");String s7 = new String("123.678");// 将s6转化成int型数据int n1 = Integer.parseInt(s6) ;// 将s7转化成double型数据double n2 = Double.parseDouble(s7) ;double m = n1 + n2;System.out.println(n1 + " + " + n2 + " 的和为: " + m);// String类调用valuOf(double n)方法将m转化为字符串对象String s8 = String.valueOf(m);position = s8.indexOf(".");// 利用字符串截取方法获取s8中小数点后面的小数String temp = s8.substring((s8.indexOf("."))+1);System.out.println("数字" + m + "有" + temp.length() + "位小数");String s9 = new String("ABCDEF");// 将s9存放到数组a中char a[] = s9.toCharArray() ;System.out.print(s9 + " 逆序字符输出为: ");for (int i = a.length - 1; i >= 0; i--) {System.out.print(" " + a[i]);}}
}
2.数组的转换
要求:定义一个二维数组,并给二维数组赋值,分别打印原二维数组和行列互调后的二维数组。 显示出的结果为
package step2;
import java.util.Scanner;
public class SwapMatrix {public static void main(String[] args) {Scanner input = new Scanner(System.in);int array[][] = new int[3][3];for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++)array[i][j] = input.nextInt();}System.out.println("原始数组为:");for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++)System.out.print(array[i][j]+" ");System.out.println();}System.out.println("行列互调后数组为:");for (int j = 0;j<3;j++) {for(int i = 0;i<3;i++)System.out.print(array[i][j]+" " );System.out.println();}}}
3.统计一批学生的成绩,求平均分及各个区间段的人数(Score.java)。
要求:输入一批学生成绩,以-1作为结束标记。
统计这批学生中不及格(<60)、及格(60~69)、中(70~79)、良(80~89)、优(>90)的人数。 求这批学生的平均分。
提示:这是一个计数和累加问题。学生数量不确定,但有一个结束标记(-1),该问题的总体结构是一个循环处理问题,可用while循环,当输入数据为-1时结束循环。为了统计各种情况的人数,需要设立相应的计数变量,并给其赋初值0,另外为了求平均分,必须计算总分,也就是计算出所有学生成绩的累加和,然后除以总人数即可得到平均分。
输入数据样例:75.5 80 92.5 64.5 55 87.5 98 -1
输出结果样例:
不及格的人数为:1
及格的人数为:1
中等的人数为:1
良好的人数为:2
优秀的人数为:2
全班平均分为:79.0
package step3;
import java.util.Scanner;public class Score {public static void main(String[] args) {Scanner input = new Scanner(System.in);int failCount = 0;int passCount = 0;int middleCount = 0;int goodCount = 0;int excellentCount = 0;double totalScore = 0;int studentCount = 0;while (true) {double score = input.nextDouble();if (score == -1) {break;}if (score < 0 || score > 100) {System.out.println("请输入0~100之间的数。");}totalScore += score;studentCount++;if (score < 60) {failCount++;} else if (score < 70) {passCount++;} else if (score < 80) {middleCount++;} else if (score < 90) {goodCount++;} else {excellentCount++;}}double averageScore = totalScore / studentCount;System.out.println("不及格的人数为:" + failCount);System.out.println("及格的人数为:" + passCount);System.out.println("中等的人数为:" + middleCount);System.out.println("良好的人数为:" + goodCount);System.out.println("优秀的人数为:" + excellentCount);System.out.printf("全班平均分为:%.1f",averageScore );}
}