Java实验一

本文介绍了Java中的String类常用方法,如字符串比较、查找特定字符、分割与拼接,以及矩阵转置的实现。同时,展示了如何通过while循环计算平均分和不同分数段的人数。
摘要由CSDN通过智能技术生成

1.String类的常用方法

在Begin-End区域中按照要求补充代码。运行结果如下所示:

s1与s2不相同

手机号以139开头

按字典序s4小于s5

d:\java\A.java中最后出现\的位置为: 7

d:\java\A.java中含有的文件名为: A.java

100 + 123.678 的和为: 223.678

数字223.678有3位小数

ABCDEF 逆序字符输出为: F E D C B A、

代码如下:
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) ) {
			System.out.println("s1与s2相同");
		} else {
			System.out.println("s1与s2不相同");
		}
		String s3 = new String("13971918888");
		// 判断手机号是否以“139”开头
		if ( s3.lastIndexOf("139")==0) {
			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(position+1) ;
		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(position + 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.矩阵转置

定义一个3行3列整型二维数组,并给二维数组赋值,分别打印出原二维数组和行列互调后的二维数组。

代码如下:
package step2;
import java.util.Scanner;

public class SwapMatrix {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int[][] matrix = new int[3][3];
		for (int i = 0; i < 3; i++) {
			for (int j = 0; j < 3; j++) {
				matrix[i][j] = scanner.nextInt();
			}
		}
        /********** Begin **********/
		System.out.println("原始数组为:");
		for (int i = 0; i < matrix.length; i++) {
			for (int j = 0; j < matrix[i].length; j++) {
				System.out.print(matrix[i][j]+" ");
			}
			System.out.println();
		}
        
        
		System.out.println("行列互调后数组为:");
		for (int i = 0; i < matrix.length; i++) {
			for (int j = 0; j < matrix[i].length; j++) {
				System.out.print(matrix[j][i]+" ");
			}
			System.out.println();
		}
        
        
        /********** End **********/
		scanner.close();
	}

}


3.求平均分及各个区间段的人数

这是一个计数和累加问题。学生数量不确定,但有一个结束标记(-1),该问题的总体结构是一个循环处理问题,可用while循环,当输入数据为-1时结束循环。为了统计各种情况的人数,需要设立相应的计数变量,并给其赋初值0,另外为了求平均分,必须计算总分,也就是计算出所有学生成绩的累加和,然后除以总人数即可得到平均分。

注意:平均分结果保留1位小数。

输入数据样例: 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 scanner = new Scanner(System.in);
		/********** Begin **********/
        double a=scanner.nextDouble(),m=0;
        int b=0,c=0,d=0,e=0,f=0,n=0;
        while(a!=-1) {
        	n++;
        	m+=a;
        	if(a>90) 
        		f++;
        	else if(a>=80)
        		e++;
        	else if(a>=70)
        		d++;
        	else if(a>=60)
        		c++;
        	else b++;	
        	a=scanner.nextDouble();
        }
        System.out.printf("不及格的人数为:%d\n",b);
        System.out.printf("及格的人数为:%d\n",c);
        System.out.printf("中等的人数为:%d\n",d);
        System.out.printf("良好的人数为:%d\n",e);
        System.out.printf("优秀的人数为:%d\n",f);
        System.out.printf("全班平均分为:%.1f",m/n);
        
        
        /********** End **********/
		scanner.close();
	}
}

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值