黑马程序员技术交流社区

标题: 秀秀你的方法! [打印本页]

作者: 不怕    时间: 2013-6-21 08:51
标题: 秀秀你的方法!
不用循环,如何判断字符串A=“1,2,34,5”中是否包含字符‘2’(A之间用逗号分开)
作者: chensc    时间: 2013-6-21 09:08
学习学习!
作者: 蔡志涛    时间: 2013-6-21 09:41
可以用<string>.Contains方法,参考下面代码:
string   str   A=“1,2,34,5”;
if(str.Contains('2'))
{
Console.WriteLine("字符串含有2");
}
作者: 万大述    时间: 2013-6-21 11:13
string   A="1,2,34,5";
            string [] strs =new string [A.Length]; //定义一个足够大的数组。
            strs = A.Split(','); //把A这个字符串按”,“分解成数组放在strs中。
            //要求不用循环基本没意义。
            for (int i = 0; i < A.Split(',').Length; i++) //注意结束条件。
            {
                if (strs[i].Equals("2")) //将数组元素和字符2做比较。
                {
                    Console.WriteLine("字符串含有2");
                }
            }
            Console.ReadKey();
作者: 吴承烨    时间: 2013-6-21 12:20
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;

  5. namespace _1
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             //不用循环,如何判断字符串A=“1,2,34,5”中是否包含字符‘2’(A之间用逗号分开)
  12.             string a = "1,2,34,5";
  13.             if (a.Contains('2'))
  14.             {
  15.                 Console.WriteLine("包含");
  16.             }
  17.             else
  18.             {
  19.                 Console.WriteLine("不包含");
  20.             }
  21.             Console.ReadKey();
  22.         }
  23.     }
  24. }

复制代码

作者: changweihua    时间: 2013-6-21 15:03
Regex.IsMatch(A, "[2]")
作者: 一直在努力    时间: 2013-6-21 16:40
导入linq
string   str   A=“1,2,34,5”;
str.Contains('2')
作者: 道法乾坤110    时间: 2013-6-21 19:05
吴承烨 发表于 2013-6-21 12:20

楼主的意思是你自己写方法,不是让你用Contains,这个方法是你自己写的吗。
作者: 道法乾坤110    时间: 2013-6-21 19:05
蔡志涛 发表于 2013-6-21 09:41
可以用.Contains方法,参考下面代码:
string   str   A=“1,2,34,5”;
if(str.Contains('2'))

看清楼主的意思在回答,让你自己写方法。
作者: 道法乾坤110    时间: 2013-6-21 19:18
因为在网吧,所以具体方法也写不了,大概,有这么个想法,不用循环的话,可以试试if和几个else if ,这个不算循环吧。可以先把这个字符串转换成数组,然后,在用if ,else if对数组中的每个值写一下,总共四个数字,也就用一个if 三个else if就行了,大概这样
先用Substring()这个把A中的每个数字取出来,放到定义好的数组ShuZu[]中,然后再用if()进行比较,比如
if(ShuZu[1]=="2")
{
   Console.WriteLine("。。。。。");
}

由于在网吧,没法用visual studio写,所以只能简单的说这些,你自己可以试试。由于我也没写,所以不知道可不可以,不过应该行吧。

注意,在整个过程中,没用到循环,需要循环的地方,用if

作者: 月儿圆    时间: 2013-6-21 21:29
道法乾坤110 发表于 2013-6-21 19:18
因为在网吧,所以具体方法也写不了,大概,有这么个想法,不用循环的话,可以试试if和几个else if ,这个不 ...

意思是?用shuzu[1]就是要数组中每个成员都要遍历一遍了?,这样会耗费系统资源的
作者: 蔡志涛    时间: 2013-6-22 09:14
道法乾坤110 发表于 2013-6-21 19:05
看清楼主的意思在回答,让你自己写方法。

.net中封装了那么好的方法我个人觉得自己就不用再写了,直接调用微软给我们写好的方法多好
作者: 关关雎鸠    时间: 2013-6-22 12:05
我觉的那只能一个一个的比了。。如:if (A[0] == "2")、A[1]、A[2] 这样的一个个比较了。。
作者: 关关雎鸠    时间: 2013-6-22 12:08
月儿圆 发表于 2013-6-21 21:29
意思是?用shuzu[1]就是要数组中每个成员都要遍历一遍了?,这样会耗费系统资源的 ...

循环遍历难道不是把每个元素拿去比么?
作者: 月儿圆    时间: 2013-6-23 00:42
关关雎鸠 发表于 2013-6-22 12:08
循环遍历难道不是把每个元素拿去比么?

:o是哦     




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