A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 石国庆 中级黑马   /  2013-3-14 16:30  /  1795 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天去一家公司面试,有这么一道题目:不用循环,如何判断字符串A=“1,2,34,5”中是否包含字符‘2’(A之间用逗号分开)。想来想去不知道怎么写,求大神指点!!

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

11 个回复

倒序浏览
??  Contains不就好了吗?
回复 使用道具 举报
string s = "1,2,34,5";
boolean result = s.Split(',').Contains("2");
System.out.println(result);
输出的就是结果。
回复 使用道具 举报
  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.             }
复制代码

评分

参与人数 1技术分 +1 收起 理由
彭清贵 + 1 很给力!

查看全部评分

回复 使用道具 举报
  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();
复制代码

评分

参与人数 1技术分 +1 收起 理由
彭清贵 + 1

查看全部评分

回复 使用道具 举报
用字符串的contains方法应该是最快的吧
回复 使用道具 举报
本帖最后由 杞文明 于 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

评分

参与人数 1技术分 +1 收起 理由
彭清贵 + 1

查看全部评分

回复 使用道具 举报
额,这题做法挺多的哈。
补充一种,字符串匹配常用的方法(正则表达式)

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

评分

参与人数 1技术分 +1 收起 理由
彭清贵 + 1

查看全部评分

回复 使用道具 举报
岳珅 中级黑马 2013-3-14 17:30:25
9#
indexof、contains、正则表达式,甚至用split都能很坑爹地得到0.0
string的方法很多多滴,以前偶也没想到string有那么多方法。。。直到做了入学面试0.0
回复 使用道具 举报
张栓紧 发表于 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: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:22
那个是思路,所以中英文我没弄清,这个绝对正确
               String s = "1,2,34,5";
                String[] s2=  ...

这个跑题了     说的不用循环
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马