代码内容大概是这样的:
System.out.println("请输入姓名:");
Scanner input = new Scanner(System.in);
String stuName = input.nextLine();
System.out.println(stuName.length());//输出1
if(stuName.length() == 0);
{
System.out.println(stuName.length());//输出2
stuName = "缺";
System.out.println(stuName.length());//输出3
}
System.out.println(stuName.length());//输出4
为什么这段代码执行的结果会是:
请输入姓名:
hehe (我在控制台输入的)
4 (这时候字符串长度是4没错啊)
4 (可为什么判断长度为0的if语句居然通过了)
1 (把字符串内容变成"缺")
1 (同上)
java里关于判断字符串长度的一个问题
答案:4 悬赏:20
解决时间 2021-02-18 04:40
- 提问者网友:若相守£卟弃
- 2021-02-17 15:43
最佳答案
- 二级知识专家网友:旧事诱惑
- 2021-02-17 16:24
你的if(stuName.length() == 0);{ System.out.println(stuName.length());//输出2 stuName = "缺"; System.out.println(stuName.length());//输出3}
其中if(stuName.length() == 0);此处多了一个分号!!!!看到没?
其中if(stuName.length() == 0);此处多了一个分号!!!!看到没?
全部回答
- 1楼网友:单身小柠`猫♡
- 2021-02-17 19:28
帅哥你注意到你if后面的分号没,你分表示你这语句执行完了。而你后面的在一个块里面所以会执行
- 2楼网友:猎杀温柔
- 2021-02-17 19:12
if(stuName.length() == 0); 这句话相当于为空的话 ,什么也不执行。
下面大括号的代码无论如何都能执行。
- 3楼网友:废途浑身病态
- 2021-02-17 17:46
下面是string类的substring方法的简介:
substring方法
该方法的作用是取字符串中的“子串”,所谓“子串”即字符串中的一部分。例如“23”是字符串“123”的子串。
字符串“123”的子串一共有6个:”1”、”2”、”3”、”12”、”23”、”123”。而”32”不是字符串”123”的子串。
例如:
string s = “test”;
string s1 = s.substring(2);
则该代码的作用是取字符串s中索引值为2(包括)以后的所有字符作为子串,则字符串s1的值是”st”。
如果数字的值和字符串的长度相同,则返回空字符串。例如:
string s = “test”;
string s1 = s.substring(4);
则字符串s1的值是””。
如果需要取字符串内部的一部分,则可以使用带2个参数的substring方法,例如:
string s = “teststring”;
string s1 = s.substring(2,5);
则该代码的作用是取字符串s中从索引值2(包括)开始,到索引值5(不包括)的部分作为子串,则字符串s1的值是”sts”。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |