java string str = mpa.get(key);str为空的判断
时间: 2024-03-13 15:47:26 浏览: 21
你可以使用以下代码来判断 str 是否为空:
```
if(str == null || str.trim().isEmpty()) {
// str为空
}
```
其中,`str == null` 表示 str 为 null,`str.trim().isEmpty()` 表示 str 去除前后空格后是否为空字符串。如果 str 为空,则执行 if 中的语句。
相关问题
请检查并优化下面这串代码:import java.util.ArrayList; class MyStack extends ArrayList<String> { public void push(String str) { this.add(str); } public String pop() { if (this.isEmpty()) { return null; } int lastIndex = this.size() - 1; String str = this.get(lastIndex); this.remove(lastIndex); return str; } } public class TestMyStack { public static void main(String[] args) { MyStack stack = new MyStack(); for (int i = 0; i < 5; i++) { System.out.print("请输入第" + (i + 1) + "个字符串:"); String str = System.console().readLine(); stack.push(str); } System.out.println("\n逆序显示这些字符串:"); while (!stack.isEmpty()) { String str = stack.pop(); System.out.println(str); } } }
这段代码已经非常简洁和有效,但是还有一些可以改进的地方。以下是我提出的一些建议:
1. 在MyStack类中,我们可以重写add方法,以确保只添加字符串类型的元素。这样可以避免将错误类型的元素添加到堆栈中。
2. 在MyStack类中,我们可以重写toString方法,以便在打印堆栈时更方便。
3. 在TestMyStack类中,我们可以使用Scanner类来替换System.console().readLine()方法。
以下是修改后的代码:
```
import java.util.ArrayList;
import java.util.Scanner;
class MyStack extends ArrayList<String> {
@Override
public boolean add(String str) {
if (str instanceof String) {
return super.add(str);
}
return false;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
for (int i = this.size() - 1; i >= 0; i--) {
sb.append(this.get(i)).append("\n");
}
return sb.toString();
}
public String pop() {
if (this.isEmpty()) {
return null;
}
int lastIndex = this.size() - 1;
String str = this.get(lastIndex);
this.remove(lastIndex);
return str;
}
}
public class TestMyStack {
public static void main(String[] args) {
MyStack stack = new MyStack();
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < 5; i++) {
System.out.print("请输入第" + (i + 1) + "个字符串:");
String str = scanner.nextLine();
stack.push(str);
}
System.out.println("\n逆序显示这些字符串:");
System.out.println(stack);
}
}
```
现在,add方法确保只添加字符串类型的元素,toString方法以逆序显示堆栈,而使用Scanner类来获取用户输入。
//先判断类 String str = in.nextLine(); int length = str.length(); //学生PT if(length == 0) { String stuNo1 = in.next(); String name1 = in.next(); double english1 = in.nextDouble(); double math1 = in.nextDouble(); double Java1 = in.nextDouble(); double testScore1 = 1.0; Student s1 = new StudentPT(stuNo1,name1,english1,math1,Java1,testScore1); System.out.println(s1.toString()); } 如何修改
这段代码中的if语句块可以进行如下修改:
```java
// 判断输入字符串是否为"PT"
String str = in.nextLine();
if(str.equals("PT")) {
String stuNo1 = in.next();
String name1 = in.next();
double english1 = in.nextDouble();
double math1 = in.nextDouble();
double java1 = in.nextDouble();
double testScore1 = 1.0;
// 创建一个学生对象,类型为StudentPT
Student s1 = new StudentPT(stuNo1, name1, english1, math1, java1, testScore1);
System.out.println(s1.toString());
}
```
这样修改后,就可以根据输入的字符串是否为"PT"来判断要创建的学生对象类型,并且按照相应的属性值创建对象。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)