当前位置:编程学习 > C#/ASP.NET >>

写一个控制台程序,给字符串中每个单词加上双引号. (寻找更好的解决方法)

常用的方法:

          
  
            string thestring;
            Console.WriteLine("请输入任意字符串");
            char[] thechar = { ' ' };
            thestring = Convert.ToString(Console.ReadLine());//接收用户输入的字符,并转换成字符串  
            string[] a = thestring.Split(thechar);//将字符串转换成数组            
            foreach (string str in a)
            {
                Console.Write("\"{0}\"", str);
            }
            
            Console.ReadLine(); 

这个方法我个人觉得并不好,如果是一个以上空格的话,显然不能完全达到要求..







我的方法:
 
 
            string thestring;
            Console.WriteLine("请输入任意字符串");
            thestring = Convert.ToString(Console.ReadLine());//接收用户输入的字符,并转换成字符串
              thestring = thestring.Replace(" ", "\" \"");//将空格替换成"空格"            
            Console.Write("\"{0}\"", thestring);            
            Console.ReadLine(); 


这个办法是我最初的想法,够笨的可以吧,嘿嘿,不过明显比上面的方法简单,而且好理解,功能还是一样的.不过还是不能达到多个空格的要求.







哪位高人能有方法解决,,,就是把多个空格换转成一个空格,, 或者其他方法来完善这个问题..



不胜感激!!!
--------------------编程问答--------------------

string input = "this is a test";
Regex re = new Regex(@"\w+");
string output = re.Replace(input,"'$&'");
//'this' 'is' 'a' 'test'
--------------------编程问答-------------------- ??? 我完全一头雾水?

敢问是什么意思,给我上注释,谢谢. --------------------编程问答--------------------  string thestring;
            Console.WriteLine("请输入任意字符串");
            char[] thechar = { ' ' };
            thestring = Convert.ToString(Console.ReadLine());//接收用户输入的字符,并转换成字符串  
            string[] a = thestring.Split(thechar);//将字符串转换成数组            
            foreach (string str in a)
            {
                if (str.CompareTo("") != 0)//判斷是否為空
                {
                    Console.Write("\"{0}\"", str);
                }
            }

            Console.ReadLine();  --------------------编程问答-------------------- string[] a = thestring.Split(thechar);

字符串数组可以直接用join方法

a.Join(""") 这样更省事 --------------------编程问答-------------------- string str = "i am   a student";
            str = Regex.Replace(str, @"\w{1,}", "\"$&\"");
            Console.WriteLine(str); --------------------编程问答-------------------- string ss = "a    b    c        d    e"
char[] separator = {' '};
string[] item = ss.Split(separator, StringSplitOptions.RemoveEmptyEntries);

这样就能屏蔽掉所有的空格  不管几个 --------------------编程问答-------------------- 楼主结贴的时候别忘了我给点分啊。HOHO --------------------编程问答--------------------
引用 1 楼 wackyboy 的回复:
C# code

string input = "this is a test";
Regex re = new Regex(@"\w+");
string output = re.Replace(input,"'$&'");
//'this' 'is' 'a' 'test'


如果楼主要的是短语,那还要考虑标点符号的


string input = "this is a test";
Regex re = new Regex(@"\S+");
string output = re.Replace(input,"\"$0\"");
//'this' 'is' 'a' 'test'
--------------------编程问答--------------------
string input = "It's a test";
Regex re = new Regex(@"\S+");
string output = re.Replace(input, "\"$0\"");
//"It's" "a" "test"
--------------------编程问答-------------------- string thestring;
            Console.WriteLine("请输入任意字符串");
            char[] thechar = { ' ' };
            thestring = Convert.ToString(Console.ReadLine());//接收用户输入的字符,并转换成字符串  
            string[] a = thestring.Split(thechar);//将字符串转换成数组            
            foreach (string str in a)
            {
                //Console.Write("\"{0}\"", str);
                if (str.Length != 0)
                    Console.Write("\"{0}\" ", str);//把空格去掉
            }

            Console.ReadLine();  --------------------编程问答-------------------- 应该是正则表达式
引用 2 楼 slwen 的回复:
??? 我完全一头雾水?

敢问是什么意思,给我上注释,谢谢.
--------------------编程问答-------------------- 我的方法如下:
              string myString = Console.ReadLine();
            char[] myWord ={' '};
            string[] myWords = myString.Split(myWord);
            string word;
            myString = "";
            int i;
            for (i = 0; i < myWords.Length;i++ )
            { 
                word=myWords[i];
                word = "\"" + word + "\"";
                myString = myString + " " + word;
            }
            myString = myString.TrimStart();
            Console.WriteLine(myString);
            Console.ReadKey();
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,