黑马程序员技术交流社区

标题: contains的用法 [打印本页]

作者: 潜伏    时间: 2013-11-15 21:20
标题: contains的用法
无法将string中contains的方法应用到给定类型;s.contains('e');
为啥?谢谢!!!

7D[~M2WLIZW2ALZNVUY`96S.jpg (57.9 KB, 下载次数: 48)

7D[~M2WLIZW2ALZNVUY`96S.jpg

作者: Sasson    时间: 2013-11-15 21:32
  1. class Demo{
  2.         public static void main(String[] args)
  3.         {
  4.               Demo1.method();


  5.         }
  6. }
  7. class Demo1 {
  8. static String s = "lovemysele";
  9. public static void method() {
  10.         System.out.println(s.length());
  11.         System.out.println(s.charAt(3));
  12.         System.out.println(s.indexOf('e'));
  13.         System.out.println(s.indexOf('e',4));
  14.         System.out.println(s.contains("e"));
  15.         //public boolean contains(CharSequence s)当且仅当此字符串包含指定的 char 值序列时,返回 true。
  16.         //所以应该是s.contains("e")
  17. }
  18. }
复制代码

作者: 习嘻嘻    时间: 2013-11-15 21:38
  当且仅当此字符串包含指定的 char 值序列时,返回 true

  String s = "my String is s";
  boolean result1 = s.contains("my name")  ; false
  boolean result2 = s.contains("my is");        false
  boolean result3 = s.contains("my String")  ;true
  boolean result3 = s.contains("s");              true


作者: smileven    时间: 2013-11-15 21:42
contains方法是这样的boolean contains(String str);也就是比较字符串中是否存在字串str。
你在这儿写成了boolean contains('e'),
用单引号括起来的是单个字符,也就是char型的,而String是继承Object的对象。所以contains不能完成你想要的操作。

你可以修改成s.contains("e");或者用s.indexOf('e')方法。
作者: Sasson    时间: 2013-11-15 21:52
contains本质上就是一个比较
你拿String和一个基本数据类型去比·····
作者: 潜伏    时间: 2013-11-15 21:53
懂了,判断的是一个字符串中是否包某个子串,所以该子串也必须是字符串形式:“”,而不应该是字符形式:''
作者: 潜伏    时间: 2013-11-15 21:53
谢谢你,我懂了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2