【问题标题】:Complex text formatting ASP.NET/C#复杂的文本格式化 ASP.NET/C#
【发布时间】:2011-11-18 22:36:05
【问题描述】:

被指责不够详细,现在我尽量详细描述。

所以,我有带有文本框的 Web 应用程序。在它旁边我制作了预览标签,所以当我点击提交时,它将文本发送到远程应用程序,当我按下预览时,它将文本发送到标签进行预览。

远程应用程序具有特定的文本格式,所以当我输入A 时,文本变为红色,B,文本变为绿色,等等。当我不想改变颜色时,我输入这个新颜色的标志,我不能关闭颜色(就像在 HTML 中一样)。 对于新行,我也有一个标志,它是@r 我也有双倍宽度的标志。

主要问题是做以下事情:

  1. 计算字符和空格,并在第 30 个符号之前的最后一个空格处换行(将空格替换为 @r(新行符号),这样空格不会被占用到下一行)。 @x(x is some letter) 都不应该被计算在内,因为它们只是进行文本格式化。
  2. 在计算字符时,当涉及到 %Y(表示双字母宽度的符号)时,它应该将这些字母和空格计数加倍,直到出现 @Z 或 @W,其中普通字母重新开始,并且从那时开始,再一个一个地数。

如果有什么不明白的,请追问。

【问题讨论】:

  • “描述性”,请最好按照描述发布您的代码。一行代码抵得上一段甚至更多!
  • 一切都清楚了,但你的问题是什么?您的算法似乎定义正确,现在您只需将其翻译成 c# 就可以了
  • @Zruty,我不太擅长 C#,所以我几乎不需要帮助如何用 C# 编写这个。

标签: c# asp.net


【解决方案1】:

您可以访问从 TextBox 获得的字符串中的单个字符,并对其进行迭代:

StringBuilder newString = new StringBuilder();

for (int index = 0; index < textBox.Text.Length; index++)
{
   char myChar = textBox.Text[index];

   ... apply your logic as need one char at a time...
   ... you might need extra variables outside of the loop to 
   ... keep track of your last space before 30th character, etc. 

   newString.Append(...);
}

string result = newString.ToString();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    相关资源
    最近更新 更多