- 任务描述
- 相关知识
- 编程要求
- 测试说明
任务描述
本关任务:完成查找字符串数组中指定字符串位置的小程序。
相关知识
为了完成本关任务,你需要知道:如何判断两个字符串是否相等。
如何判断字符串相等
我们之前判断两个数是否相等使用的是
==
符号,我们判断字符串是否相等能否用==
符号呢?我们来看一段代码。输出结果:
为什么呢? 是因为
==
比较的是两个对象的内存地址,我们知道变量被创建的时候就相当于在内存中开辟空间,而案例中str
和str1
就是占用的两块不同的空间,所以他们的内存地址是不一致的,在用==
符号判断的时候就不相等了,即为false
。也许你会这样子尝试:
这个时候的输出结果就可能会让你感觉疑惑:
这又是什么原因呢?是因为定义
String str = "hello"
和String str1 = "hello"
没有进行对象的创建,而是同时指向的一个对象,所以他们的内存地址是相同的。问题来了,既然
==
不能用,那我们应该用什么呢?在
Java
中判断两个字符串是否相等,需要使用equals方法;语法:
字符串1.equals(字符串2)
如果字符串1
等于字符串2
返回true
,否则返回false
; 例如:输出:
str与str1是否相等true
编程要求
在右侧编辑器
Begin-end
处填充代码,实现在数组中查找指定字符串位置的功能。测试说明
测试输入:
张三
预期输出:张三在数组的第1个位置
测试输入:
张富贵
预期输出:张富贵在数组的第5个位置
开始你的任务吧,祝你成功!
-
代码:
package step2; import java.util.Scanner; public class HelloWorld { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //str为要查找的字符串 String str = sc.next(); /********** Begin **********/ //创建数组 arr 给数组赋值 {"张三","张三丰","张无忌","王二麻子","张富贵"} String arr[]={"张三","张三丰","张无忌","王二麻子","张富贵"}; for(int i=0;i<arr.length;i++) { if(arr[i].equals(str)) System.out.println(str+"在数组的第"+(i+1)+"个位置"); } /********** End **********/ } }