Java 字符串和字符串数组如何进行比较

申码程序 2017-12-11 05:01:55
package main;

import java.util.Scanner;

public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
String[] week= {"Monday","Tuesday","Wednesday",
"Thursday","Friday","Saturday","Sunday"};//星期数组
System.out.println("请输入星期:");
String s=in.nextLine();//用户输入的星期;
boolean s1=true;
for (int i=0;i<week.length;i++)
{
/*本人小菜鸟,对字符串的用法不太懂
* 重点是下边if语句怎么让字符串和字符串数组里的元素进行比较
* 还请各位大神指点迷津!
*/
if (s.equals(week[i]))
{
s1=true;
break;
}
}
if(s1)
{
System.out.println(s);
}
else
{
System.out.println("输入错误");
}
}
}

问题在代码的注释里。求大神解惑!
...全文
669 7 点赞 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
qq_34350475 2017-12-12
你默认的 boolean s1=true 改为 false ,不然就算输入的不是这几个星期中的一个,因为你原本就是true,所以一直会执行原样输出的那条语句
  • 打赏
  • 举报
回复
申码程序 2017-12-12
引用 6 楼 qq_34350475 的回复:
你默认的 boolean s1=true 改为 false ,不然就算输入的不是这几个星期中的一个,因为你原本就是true,所以一直会执行原样输出的那条语句
明白了 明白了
  • 打赏
  • 举报
回复
申码程序 2017-12-11
引用 3楼shunda_zhou 的回复:
没太看懂你想问什么,s.equals(week[i])这句就是比较字符串s和字符串week[i]的内容是否相等啊,
是的,我就是想表达这个意思,我想达到的目的是,根据用户输入,判断它是不是周一至周日其中的一天
  • 打赏
  • 举报
回复
申码程序 2017-12-11
引用 2楼Tian_zhishang 的回复:
s.equals(week[i])方法就是判断你输入的字符串是否与当前索引的week数组元素相等,整个for就是用来判断与星期几相等的
我那么写也是想表达这个意思,但是输出结果是,无论我输入什么,它都原样输出
  • 打赏
  • 举报
回复
shunda_zhou 2017-12-11
没太看懂你想问什么,s.equals(week[i])这句就是比较字符串s和字符串week[i]的内容是否相等啊,
  • 打赏
  • 举报
回复
s.equals(week[i])方法就是判断你输入的字符串是否与当前索引的week数组元素相等,整个for就是用来判断与星期几相等的
  • 打赏
  • 举报
回复
Braska 2017-12-11
条件改成 week[i].equals(s) 也可以不用循环。

        System.out.println(Arrays.asList(week).contains(s));
  • 打赏
  • 举报
回复
相关推荐
发帖
Java
加入

4.8w+

社区成员

Java相关技术讨论
申请成为版主
帖子事件
创建了帖子
2017-12-11 05:01
社区公告
暂无公告