高分请哪位仁兄指教一下,小弟刚学编程。

cl10270517 2006-04-21 09:21:58
有一个字符串数组,例如ada())ad((),dad(),dadsa,我要算出总共有多少个字符,其中当遇到“(”“)”其后面的都不算到字符中来,当遇到“,”时又开始算,也就是说从(或者)到,中得都不算到字符数中来,请问如何从(或者)到,的跳转!最好能够把代码写出来看看。急!谢谢!
...全文
241 17 点赞 打赏 收藏 举报
写回复
17 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cl10270517 2006-04-21
谢谢各位的帮助,已经搞定,谢谢!
  • 打赏
  • 举报
回复
kissknife 2006-04-21
另:上面,逗号不计入count
  • 打赏
  • 举报
回复
kissknife 2006-04-21
如果考虑某个括号并没有和它对应的逗号时(如下面的最后一个括号),应该用下面的代码:
string s = "ada())ad((),dad(),dadsa,(aa";
int count = 0;
bool sign=false;

for (int i = 0; i < s.Length; i++)
{
char c = s[i];
if (!sign && (c == '(' || c == ')' || c == '(' || c == ')'))
{
sign = true;
}

if ((s.LastIndexOf(',')<i || c == ',') && sign == true)
{
sign = false;
continue;
}

if (!sign && c != ',')
{
count++;
}
}
输出:13
  • 打赏
  • 举报
回复
zhf777 2006-04-21
先计算总的字符数
再计算"("到")"之间的字符数
有几个"("算几次
减之即可
  • 打赏
  • 举报
回复
comeon_data 2006-04-21
上面是我的代码,你看看是不是你要的
  • 打赏
  • 举报
回复
comeon_data 2006-04-21
string str = "ada())ad((),dad(),dadsa" ;
int totalLength = str.Length ;

int result = totalLength ;
bool target1 = false ;
bool target2 = false ;
int target1Position = 0 ;
for( int i = 0 ; i < totalLength ; i ++ )
{
switch( str.Substring( i , 1 ) )
{
case "(" :
if( !target1 )
{
target1Position = i ;
target1 = true ;
}
break ;
case ")":
if( !target1 )
{
target1Position = i ;
target1 = true ;
}
break ;
case "," :
if( !target2 && target1 )
target2 = true ;
break ;
default:break ;
}
if( target1 && target2 )
{
result -= ( i - target1Position ) ;
target1 = false ;
target2 = false ;
}
}
Label1.Text = result.ToString() ;
  • 打赏
  • 举报
回复
limengqiang 2006-04-21
给你段代码分析一下
orgId=orgId.Substring(0,orgId.Length-1);
string temp=string.Empty;
string []orgItem=orgId.Split(',');
for(int i=0;i<orgItem.Length;i++)
{
temp=temp+"'"+orgItem[i]+"',";
}
orgId=temp.Substring(1,temp.Length-3);
return orgId;
  • 打赏
  • 举报
回复
LixingTie 2006-04-21
int count = 0;
bool go = true;
string A = "ada())ad((),dad(),dadsa,";
foreach (char x in A)
{
if (x == '(') go = false;
if (x == ',')
{
go = true;
continue;
}
if(go) count++;
}
  • 打赏
  • 举报
回复
cl10270517 2006-04-21
比如说有一个数组中的元素是这样的adaf()dad)(,dafd)(,fdafd,现在的问题是()dad)(,和)(,按照我算法是不应该计入总字符串中去的,那我如何实现跳过它们。也就是我标题中说的如何实现使得(到,之间的字符不算在总字符内
  • 打赏
  • 举报
回复
iversonkai 2006-04-21
迷糊~
  • 打赏
  • 举报
回复
xiao635113 2006-04-21
没看明白
  • 打赏
  • 举报
回复
cl10270517 2006-04-21
是啊
  • 打赏
  • 举报
回复
comeon_data 2006-04-21
是不是 (到, 或 者)到, 之间的字符都不算?
  • 打赏
  • 举报
回复
cl10270517 2006-04-21
所有的括号都是一样的,至于有粗体有细体不重要
  • 打赏
  • 举报
回复
cl10270517 2006-04-21
就是说如何实现使得(到,之间的字符不算在总字符内
  • 打赏
  • 举报
回复
liujiayu10 2006-04-21
看了半天没看懂什么意思
  • 打赏
  • 举报
回复
cl10270517 2006-04-21
怎么没有人来看看呢,对高手来说这应该很简单的啊!
  • 打赏
  • 举报
回复
相关推荐
发帖
C#
加入

10.6w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2006-04-21 09:21
社区公告

让您成为最强悍的C#开发者