黑马程序员技术交流社区
标题:
java中如何把一个字符串数组进行比较
[打印本页]
作者:
咸明月
时间:
2012-7-14 14:10
标题:
java中如何把一个字符串数组进行比较
String str = "love"; //我想判断str的第三字母是不是v
char s[] = str.toCharArray();System.out.println(s[3].equals("v"));请问错在哪儿
作者:
温少邦
时间:
2012-7-14 14:29
equals是Object的方法
而char是基本类型,没有equals方法
可以直接用==比较
比如你的例子
String str="love";
System.out.println(str.charAt(2)=='v');
2个地方要注意
1.第3个字母的角标是2,要从0开始数
2.char要用单引号围起来,双引号围起来的是String
作者:
黑马振鹏
时间:
2012-7-14 14:32
本帖最后由 黑马振鹏 于 2012-7-14 14:36 编辑
String str = "love"; //我想判断str的第三字母是不是v
char s[] = str.toCharArray();
转换为字符数组后,第三个字母应该是s[2].
修改后的结果:
System.out.println(((Character)s[2]).equals(new Character ('v')));
作者:
王宝康
时间:
2012-7-14 14:36
本帖最后由 王宝康 于 2012-7-14 14:40 编辑
package string;
public class Decide {
/**首先,你的代码中的数组脚标有问题,数组脚标是从0开始编号的,第三个位置的脚标为2,即程序中的s[2]
* 其次,equals()方法是字符串的方法,你的代码
* char s[] = str.toCharArray();System.out.println(s[3].equals("v"));char类型可是没有equals()方法的
* 数组中的数据类型为char类型
* char类型为基本数据类型,判断两个基本数据类型的数据是否相等,可以用"==",即s[2]=='v'.
*
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "love";
char [] s = str.toCharArray();
System.out.println(s[2]=='v');
}
}
复制代码
作者:
马林康
时间:
2012-7-14 14:38
第三个字母索引是2
作者:
丁朋
时间:
2012-7-14 17:04
第三个字母肯定不是v,返回一个faulse,用boolean存储。用equals存储,我给你这个思路!
作者:
鲍霄霄
时间:
2012-7-14 19:14
很明显当你把str变成数组时,是变成了这个样子:[l][o][v][e],数组都有下标,即表示数组中元素的为止,不过数组的下标是从0开始的,所以v对应的下标是2,所以你里面应该写s[2],而不是s[3]
作者:
黑马刘涛
时间:
2012-7-14 19:22
System.out.println(str.charAt(2)=='v');
复制代码
不需要转换为字符数组,直接用string类的charAt(int index)方法找到指定索引处的字符然后基本数据类型的比较
作者:
彭超华
时间:
2012-7-14 20:08
本帖最后由 彭超华 于 2012-7-14 20:48 编辑
String str = "love"; //我想判断str的第三字母是不是v
char s[] = str.toCharArray();System.out.println(s[3].equals("v"));请问错在哪儿
其一,你还没弄清数组的角标,数组角标是从0开始的,左边第一个元素的角标为0,后面元素角标值依次加1,第三个元素的角标值应该是2。
其二,要判断字符串中的指定位置的字符是否是指定字符,可以通过String类中提供的charAt(int index)获取该位置的字符,字符是基本数据类型,可以通过==来判断。
其三,char s[] = str.toCharArray();System.out.println(s[2].equals("v"));语句中,你把字符串转成了字符数组,S[2]获取的是一个字符,(“v”)用双引号表示的是一个字符串哦,equals方法由于String类覆写了Object类的方法,用来比较2个字符串的值是否相等,但你在这个语句中,用字符v和字符串v做equals方法比较,编译时就会报错,要运行正常,可以将s[2]通过valueOf()方法转成字符串比较,如:char s[] = str.toCharArray();System.out.println(String.valueOf(s[2]).equals("v"));
作者:
王红霞
时间:
2012-7-14 20:37
String str = "love"; //我想判断str的第三字母是不是v
char s[] = str.toCharArray();System.out.println(s[3].equals("v"));//数组的角标都是从0开始的 你要想看第三个字母 那角标是2
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2