从字符串中读取指定的子字符串

linji7602931 2007-07-05 12:47:46
在TXT文本中,
[T1]123
[T2]123
[T3]123
[T1]123
[T2]123
[T3]123
...


现已从TXT文本中将数据读读入一个string数据类型中,
求教如何实现:
1。统计属性[T1],[T2],[T3]各个出现的次数
2。累记属性[T1的数值

...全文
223 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sanniko 2007-07-05
  • 打赏
  • 举报
回复
建立一个DataTable,做两列,一列存储[]里面的内容,一列存储123数值.
然后循环读到DataTable里去
至于统计内容你用DataTable.Select方法就可以了
小码 2007-07-05
  • 打赏
  • 举报
回复
Macosx(不要呢称)解得很好!
如果還有T4、T5等,[Tn]中n未知時,
那還得對int[] counts = new int[] { 0, 0, 0 };作些修改。
Macosx 2007-07-05
  • 打赏
  • 举报
回复
算成T3的和 不过和T1一样
Macosx 2007-07-05
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int[] counts = new int[] { 0, 0, 0 };
int sumT3 = 0;
Regex regex = new Regex(@"\[T(\d)\](\d+)");
foreach (string line in System.IO.File.ReadAllLines("TextFile1.txt"))
{
Match match = regex.Match(line);
int index = Int32.Parse(match.Groups[1].Value);
int value = Int32.Parse(match.Groups[2].Value);
counts[index - 1]++;
if (index == 3)
{
sumT3 += value;
}
}
Console.WriteLine("T1 {0} T2 {1} T3 {2}",counts[0],counts[1],counts[2]);
Console.WriteLine("Sum of T3 {0}",sumT3);
}
}
}
我是不是太无聊了
berlin8600 2007-07-05
  • 打赏
  • 举报
回复
同意二楼,
文本比较大的话用DataTable不合适。
kingthy 2007-07-05
  • 打赏
  • 举报
回复
一个思路:
打开此文件,然后分别读取每一行,再对此行进行格式分解拆分并累加数据,如此循环即可

110,535

社区成员

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

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

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