优化这段代码System.out.println("请输入字符串个数:"); String s=sc.next (); String[] arr=s.split(" ");
时间: 2024-05-10 08:15:01 浏览: 17
这段代码可以进行优化,可以在输入字符串个数之后直接输入所有的字符串,然后通过split方法将其转化为字符串数组。
优化后的代码如下:
```
System.out.println("请输入所有字符串,以空格分隔:");
String s = sc.nextLine();
String[] arr = s.split(" ");
```
这样可以避免多次输入,提高代码效率。另外,使用nextLine方法可以读取整行输入,更加方便。
相关问题
if(i==1) { System.out.println("请输入你的姓名:"); String name =sc.next(); System.out.println("请输入你的工号:"); String id = sc.next(); System.out.println("请输入你的密码:"); String password= sc.next(); if(name==worker.getName() && id==worker.getId() && password==worker.getPassword()) { worker.CalSalary(0,3000,300,600,300); } else {System.out.println("输入有误,请重新输入:");}}
这是一段 Java 代码,它的作用是让用户输入姓名、工号和密码,并根据输入的信息判断是否与某个职工的信息匹配。如果匹配成功,则调用该职工的 CalSalary 方法计算薪水;否则提示用户输入有误,需要重新输入。
需要注意的是,比较字符串时应该使用 equals 方法而不是 ==,因为 == 比较的是对象的引用地址而不是内容。另外,这段代码中并没有定义 worker 变量,因此无法确定它的类型和值。
优化这段代码 import java.util.Scanner; public class KEY { public static void ISNOT(String name) { if(name.contains("!")|name.contains("@")|name.contains("#")|name.length()>=8|name.contains("!")){ System.out.println("注册失败!请重启程序!!!"); }else{ System.out.println("注册成功!!!您的用户名是"+name); } } public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("你好 ,用户 ,想要注册一个账号吗?"); System.out.println("请输入用户名:(不超过8个字符,不含有 ! @ # 字符):"); String name=sc.next(); ISNOT(name); } }
这段代码可以进行如下优化:
import java.util.Scanner;
public class KEY {
public static void ISNOT(String name) {
if(name.matches(".*[!@#$%^&*()].*")) {
System.out.println("输入的字符串中包含非法字符!");
} else {
System.out.println("输入的字符串合法。");
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String name = scanner.nextLine();
ISNOT(name);
}
}
优化的主要点有:
1. 使用正则表达式判断字符串中是否包含非法字符,避免使用多个contains方法。
2. 将判断字符串合法性的代码封装成一个方法,提高代码的可读性和复用性。
3. 在主方法中使用Scanner类获取用户输入的字符串,增加代码的交互性。