C# 处理换行符
我正在用C语言创建一个程序,它遍历一个字符串并计算其中字符的频率 基本上我有2节课C# 处理换行符,c#,string,user-interface,textbox,C#,String,User Interface,Textbox,我正在用C语言创建一个程序,它遍历一个字符串并计算其中字符的频率 基本上我有2节课 class Node { private char character; private float frequency; public void increment();//increments frequency } class FreqTbl { private List<Node> nodes;
class Node
{
private char character;
private float frequency;
public void increment();//increments frequency
}
class FreqTbl
{
private List<Node> nodes;
public void buildTable(char Symbol)
{
bool found = false;
foreach (var node in nodes.Where(n => n.getSymbol() == Symbol))
{
node.increment();
found = true;
}
if(found == false)
{
newNode(Symbol);
}
}
}
类节点
{
私有字符;
私人浮动频率;
public void increment();//增加频率
}
类频率
{
私有列表节点;
公共void构建表(字符符号)
{
bool-found=false;
foreach(nodes.Where中的var节点(n=>n.getSymbol()==Symbol))
{
node.increment();
发现=真;
}
if(found==false)
{
新节点(符号);
}
}
}
通过一个文本框GUI,程序将一个字符传递到FreqTbl.buildTable中,后者通过节点字段进行搜索。在处理所有其他字符时没有问题,换行符在输出中出现两次
说明文本框是否有输入
链表
红黑树
结果输出将是
l:3
i:2
n:1
k:2
e:4
d:2
:3
s:1
t:2
\n
:1
\n
:1
r:2
b:1
a:1
c:1
\n表示换行符。是否要解决此问题,以便在输出中仅显示1行中断?在将每个字符传递到FreqTbl.buildTable之前,您可以选择处理输入:
string strInput = textBox1.Text.TrimEnd('\r', '\n' );
或
似乎有两个节点都表示\n。消灭其中一个。或者(不太可能)您的输出例程中可能有一个bug…为什么不修剪输入字符串的结尾,以确保不会出现尾随
\n
此示例中缺少很多代码:节点.increment()
未实现,并且frektbl.nodes
无法用于输出,没有定义newNode
或getSymbol
方法,这只是开始。。。尽管如此,我还是要看看我是否可以用最少的编辑来复制。。。
string strInput = textBox1.Text.TrimEnd(Environment.NewLine.ToCharArray());