黑马程序员技术交流社区

标题: 一道面试题 [打印本页]

作者: 石国庆    时间: 2013-3-14 16:30
标题: 一道面试题
今天去一家公司面试,有这么一道题目:不用循环,如何判断字符串A=“1,2,34,5”中是否包含字符‘2’(A之间用逗号分开)。想来想去不知道怎么写,求大神指点!!
作者: 戴鑫凯    时间: 2013-3-14 16:42
??  Contains不就好了吗?
作者: 马甲大王    时间: 2013-3-14 16:45
string s = "1,2,34,5";
boolean result = s.Split(',').Contains("2");
System.out.println(result);
输出的就是结果。
作者: 林嘉健    时间: 2013-3-14 16:45
  1. string a = "1,2,3,4,5,6,7,8,10";
  2.             //调用string对象的IndexOf方法,查找字符所在的字符串下标
  3.             int numIndex = a.IndexOf('2');
  4.             //如下标大于等于0 则代表有,-1则代表没有
  5.             if (numIndex >= 0)
  6.             {
  7.                 Console.WriteLine("该字符串有2");
  8.             }
  9.             else
  10.             {
  11.                 Console.WriteLine("该字符串没有2");
  12.             }
复制代码

作者: 林嘉健    时间: 2013-3-14 16:48
  1.   string a = "1,2,3,4,5,6,7,8,10";
  2.             //调用String实例的Contains方法
  3.             if (a.Contains('2'))
  4.             {
  5.                 Console.WriteLine("该字符串有2");
  6.             }
  7.             else
  8.             {
  9.                 Console.WriteLine("该字符串没有2");
  10.             }
  11.             Console.ReadKey();
复制代码

作者: 丘凤光    时间: 2013-3-14 16:52
用字符串的contains方法应该是最快的吧
作者: 杞文明    时间: 2013-3-14 16:54
本帖最后由 杞文明 于 2013-3-14 16:55 编辑
  1. static void Main(string[] args)
  2. {
  3. string A="1,2,34,5";
  4. //如果找到该字符串, 返回值 从零开始的索引位置;如果未找到该字符串,则为 -1。
  5. int i = A.IndexOf('2');
  6. if (i < 0)
  7. {
  8.     Console.WriteLine("{0}中没有 '2' 这个字符", A);
  9. }
  10. else
  11. {
  12.       Console.WriteLine("{0}中含有 '2' 这个字符,位置是{1}", A,i);
  13. }

  14. Console.ReadKey();
  15. }

复制代码

判断是否包含字符.jpg (60.26 KB, 下载次数: 27)

判断是否包含字符.jpg

作者: 曾玉锋    时间: 2013-3-14 16:54
额,这题做法挺多的哈。
补充一种,字符串匹配常用的方法(正则表达式)

A="12,343,23,2343,2";
if(Regex.IsMatch(A,"2"))
{
   Console.Writeline("有2");
}
else
{
    Console.WriteLine("没有2");
}

作者: 岳珅    时间: 2013-3-14 17:30
indexof、contains、正则表达式,甚至用split都能很坑爹地得到0.0
string的方法很多多滴,以前偶也没想到string有那么多方法。。。直到做了入学面试0.0
作者: 彭清贵    时间: 2013-3-14 21:02
张栓紧 发表于 2013-3-14 16:45
string s = "1,2,34,5";
boolean result = s.Split(',').Contains("2");
System.out.println(result); ...

你这个方法 我刚才运行了  boolean    不识别   ;System.out.println  引用也引用不上   能详解吗
作者: 马甲大王    时间: 2013-3-14 21:22
彭清贵 发表于 2013-3-14 21:02
你这个方法 我刚才运行了  boolean    不识别   ;System.out.println  引用也引用不上   能详解吗 ...

那个是思路,所以中英文我没弄清,这个绝对正确
               String s = "1,2,34,5";
                String[] s2= s.split(",");
                for(int i=0;i<s2.length;i++){
                        if(s2.contains("2")){                               
                                System.out.println(true);
                        }
                }
作者: 彭清贵    时间: 2013-3-14 21:28
张栓紧 发表于 2013-3-14 21:22
那个是思路,所以中英文我没弄清,这个绝对正确
               String s = "1,2,34,5";
                String[] s2=  ...

这个跑题了     说的不用循环




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