学习-Java类和对象之可变参数

第1关:学习-Java类和对象之可变参数

任务描述

本关任务:编写程序输出考试学生的人数及姓名。

相关知识

可变参数:适用于参数个数不确定,类型确定的情况,Java 把可变参数当做数组处理。

可变参数必须位于最后一项。

原因:当可变参数个数多于一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个数不定,所以当其后边还有相同类型参数时,Java 无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项。

例子:

 
  1. public class Demo {
  2. public static void main(String[] args) {
  3. print("a","b");
  4. print("gsd","safda","f");
  5. }
  6. // 将所有参数打印
  7. public static void print(String... args) {
  8. for (int i = 0; i < args.length; i++) {
  9. System.out.println(args[i]);
  10. }
  11. }
  12. }

执行结果:

 
  1. a
  2. b
  3. gsd
  4. safda
  5. f

无论 print 方法中输入多少参数,只要都是 String 类型,都不会报错,可以正常运行。

可变参数的特点: (1)只能出现在参数列表的最后;

(2)**...位于变量类型和变量名之间,前后有无空格都可以。…**,这三个点的学名叫做可变长参数,也就是相当于一个数组,能够传入 0 个至 n 个参数;

(3)调用可变参数的方法时,编译器为该可变参数隐式地创建一个数组,在方法体中以数组的形式访问可变参数。

编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。

测试说明

平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。 可在右侧“测试结果”区查看具体的测试集详情。


开始你的任务吧,祝你成功!

源代码:

/**
 * 定义输出考试学生的人数及姓名的方法,方法名为 print,传参的类型为String,无返回值。
 */
public class Student {

	// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
	/********** Begin **********/
public static void main(String[]args){
    Student student=new Student();
    student.print("张翔","李晨","王明");
    student.print("洋洋","马华");
}
public static void print(String...names){
    int count=names.length;
    System.out.println("本次参加考试的有"+count+"人,名单如下:");
    for(int i=0;i<names.length;i++){
        System.out.println(names[i]);
    }
}

	/********** End **********/
}

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. StringBuffer、StringBuilder和String的区别如下: - String是不可变的,每次对String进行修改都会创建一个新的String对象;StringBuffer和StringBuilder是可变的,可以直接对其进行修改。 - StringBuffer是线程安全的,适用于多线程环境;StringBuilder是非线程安全的,适用于单线程环境。 - 在频繁进行字符串拼接操作时,建议使用StringBuilder,因为它的性能更高;而在多线程环境下进行字符串操作时,建议使用StringBuffer,因为它是线程安全的。 2. java.util.Date类的构造方法new Date(long mills)中的mills表示从1970年1月1日00:00:00 GMT(格林尼治标准时间)开始计算的毫秒数。这个参数用于指定Date对象所表示的具体日期和时间。 3. 时间模式是一种用于格式化和解析日期和时间的字符串模板。它使用特定的占位符来表示年、月、日、小时、分钟、秒等时间单位,通过替换占位符来得到相应的日期和时间字符串。 4. 将日期对象格式化为字符串可以使用SimpleDateFormat类的format方法。字符串解析为日期对象可以使用SimpleDateFormat类的parse方法。 5. 要获取java.util.Calendar对象,可以通过以下方式: - 使用Calendar类的getInstance方法:Calendar calendar = Calendar.getInstance()。此方法返回一个默认时区和当前日期时间设置的Calendar对象。 6. String类中的五个判断类型的方法包括: - startsWith:判断字符串是否以指定的前缀开始。 - endsWith:判断字符串是否以指定的后缀结束。 - isEmpty:判断字符串是否为空,即长度为0。 - equals:判断字符串内容是否相等。 - equalsIgnoreCase:忽略大小写,判断字符串内容是否相等。 7. String类的charAt方法用于获取字符串指定位置的字符;indexOf方法用于查找指定字符或子字符串在字符串中第一次出现的位置索引。它们的区别在于charAt返回指定位置的字符,而indexOf返回指定字符或子字符串的位置索引。 8. 将整数和String互相转换可以使用以下方法: - 整数转String:可以使用Integer类的toString方法,或者通过String类的valueOf方法。 - String转整数:可以使用Integer类的parseInt方法,或者通过Integer类的valueOf方法。 9. 对于给定的字符串"W333HHXXXX",要找出连续出现次数最多的字符及其连续出现次数,可以使用以下思路: - 遍历字符串,记录当前字符和连续出现次数。 - 如果下一个字符与当前字符相同,则将连续出现次数加1;如果不同,则更新最大连续出现次数,并记录对应的字符。 - 最后得到连续出现次数最多的字符和对应的连续出现次数。 10. 方法入参的可变参数表示方法可以接受数量可变的参数。可变参数使用形式为类型... 参数名,注意点如下: - 可变参数必须是方法的最后一个参数。 - 可变参数可以传入任意数量的参数,包括0个参数。 - 在方法内部,可变参数被当作数组处理。 - 使用可变参数时,需要注意空指针异常的处理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值