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

cl10270517 2006-04-21 09:21:58
有一个字符串数组,例如ada())ad((),dad(),dadsa,我要算出总共有多少个字符,其中当遇到“(”“)”其后面的都不算到字符中来,当遇到“,”时又开始算,也就是说从(或者)到,中得都不算到字符数中来,请问如何从(或者)到,的跳转!最好能够把代码写出来看看。急!谢谢!
...全文
270 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
怎么没有人来看看呢,对高手来说这应该很简单的啊!

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧