如何在分割字符串后打印分隔符 [英] How to print Delimiters after splitting string

查看:79
本文介绍了如何在分割字符串后打印分隔符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下代码。



I have following code.

string Test="abc * (xyz+ pqr) - 10/100";

            char[] delimiters = new char[] { '+', '-', '*', '/', '(', ')' };
            string[] parts = Test.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
            for (int i = 0; i < parts.Length; i++)
            {
                Response.Write(parts[i]);
            }



我的输出为abc xyz pqr 10100

但是我想要

abc

*



xyz

+

pqr

等等。



(在c#或javascript中)

请帮助


I m getting output as abc xyz pqr 10100
But i want
abc
*
(
xyz
+
pqr
and so on.

(in c# or in javascript)
please help

推荐答案

string Test = "abc * (xyz+ pqr) - 10/100";

 char[] delimiters = new char[] { '+', '-', '*', '/', '(', ')' };

int CurrentPos = 0;

 foreach (var Elt in Test.Split(delimiters))
  {
   if (Elt != "")
   {
    Console.WriteLine("<{0}>",Elt);
    CurrentPos += Elt.Length;
   }
                
   if (CurrentPos < Test.Length)
    Console.WriteLine("<{0}>",Test[CurrentPos]);
               
   CurrentPos++;
  }


你可以迭代字符串字符并解析它们:



C#

You could iterate the string chars and parse them thusly:

C#
char[] delimiters = new char[] { '+', '-', '*', '/', '(', ')' };
string eq = "abc * (xyz+ pqr) - 10/100";
StringBuilder sb = new StringBuilder();
string chunk = string.Empty;
foreach (char c in eq)
{
     if (delimiters.Contains(c))
     {
           sb.AppendLine(chunk);
           sb.AppendLine(c.ToString());
           chunk = string.Empty;
     }
     else
          chunk += c;
}
sb.AppendLine(chunk);
string result = sb.ToString();





JavaScript



JavaScript

var delimiters = "+-*/()";
var eq = "abc * (xyz+ pqr) - 10/100";
var result = "";
var chunk = "";
        
for (var i = 0; i < eq.length; i++) 
{
     if (delimiters.indexOf(eq.charAt(i)) > -1) 
     {
          result += chunk + "<br/>";
          result += eq.charAt(i) + "<br/>";
          chunk = "";
     }
     else
          chunk += eq.charAt(i);
}
result += chunk;
document.write(result);


为了构建David_Wimbley的答案,他真正想念的只是调用Server.HtmlEncode(TestString)< br $>


To build on David_Wimbley answer, really all he missed is the call to Server.HtmlEncode(TestString)

string Test = "abc * (xyz+ pqr) - 10/100";
 
char[] delimiters = new char[] { '+', '-', '*', '/', '(', ')' };
string[] parts = Test.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < parts.Length; i++)
{
     Response.Write(Server.HtmlEncode(parts[i]) + "<br />");
}


这篇关于如何在分割字符串后打印分隔符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆