A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© §風過無痕§ 金牌黑马   /  2013-6-26 17:49  /  1793 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 §風過無痕§ 于 2013-6-27 13:01 编辑

先看以下代码:
  1. class Program
  2. {
  3. static void Main(string[] args)
  4. {
  5. ShowUI();//显示游戏名称
  6. string [] name=new string[2];//name[0]存游戏玩家A的名字 name[1]存游戏玩家B的名字
  7. Console.WriteLine("请输入玩家A的名字:");
  8. name [0] = Console.ReadLine();
  9. //判断用户输入的名字是否为空,若为空,则让用户重新输入
  10. while (name[0] == "" )//这里是要求不能为空,dan  但我希望连空格都不行  请问怎么改???????
  11. {
  12. Console.WriteLine("玩家A的名字不能为空,请重新输入");
  13. name[0] = Console.ReadLine();
  14. }
  15. Console.WriteLine("请输入玩家B的名字:");
  16. name[1] = Console.ReadLine();
  17. while (name[1] == "" || name[1] == name[0])
  18. {
  19. if (name [1] == "")//玩家名字为空          要求同上
  20. {
  21. Console.WriteLine("玩家B的名字不能为空,请重新输入:");
  22. }
  23. if(name [1]==name [0])//A与B重名
  24. {
  25. Console .WriteLine ("该名字已被其他用户使用,请重新输入");
  26. }
  27. name[1] = Console.ReadLine();
  28. }
  29. Console.Clear();//清屏

  30. ShowUI();
  31. Console.WriteLine("对战开始......");
  32. Console.WriteLine("{0}用A来表示",name [0]);
  33. Console.WriteLine("{0}用B来表示",name [1]);



  34. Console.ReadKey();
  35. }
  36. /// <summary>
  37. /// 该方法为实现游戏界面 显示游戏名称
  38. /// </summary>
  39. static void ShowUI()
  40. {

  41. Console.WriteLine("********************");
  42. Console.WriteLine("* *       令令令令        * *");
  43. Console.WriteLine("*   *   C# PK JAVA    *   *");
  44. Console.WriteLine("*             * *                 *");
  45. Console.WriteLine("********************");
  46. }
  47. }
复制代码

上述代码玩家A或者玩家B的名字为空格都行   

期望:输入空不成立   输入空格也不成立

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

7 个回复

倒序浏览
本帖最后由 许大虾 于 2013-6-26 18:02 编辑

while (name[0] == "" )//这里是要求不能为空,dan  但我希望连空格都不行  请问怎么改???????

if (name [1] == "")//玩家名字为空          要求同上   

-------------------------------------------------   上面这两句你在 ""  中间要敲个空格键  进去    就可以实现了

-------加了空格键的代码:

  1. <P>    class Program
  2.     {
  3.         static void Main(string[] args)
  4.         {

  5.    
  6.         ShowUI();//显示游戏名称

  7.         string [] name=new string[2];//name[0]存游戏玩家A的名字 name[1]存游戏玩家B的名字

  8.         Console.WriteLine("请输入玩家A的名字:");

  9.         name [0] = Console.ReadLine();

  10.         //判断用户输入的名字是否为空,若为空,则让用户重新输入

  11.         <STRONG><FONT color=red>while (name[0] == " " )//在符号加空格键 </FONT></STRONG>这里是要求不能为空,dan  但我希望连空格都不行  请问怎么改???????

  12.     {

  13.         Console.WriteLine("玩家A的名字不能为空,请重新输入");

  14.         name[0] = Console.ReadLine();

  15.     }

  16.         Console.WriteLine("请输入玩家B的名字:");

  17.         name[1] = Console.ReadLine();

  18.         while (name[1] == "" || name[1] == name[0])

  19.             {

  20.                 <STRONG><FONT color=red>if (name [1] ==" ") //在符号加空格键</FONT></STRONG> //玩家名字为空          要求同上
  21. {
  22. Console.WriteLine("玩家B的名字不能为空,请重新输入:");
  23. }
  24. if(name [1]==name [0])//A与B重名
  25. {
  26. Console .WriteLine ("该名字已被其他用户使用,请重新输入");
  27. }
  28. name[1] = Console.ReadLine();
  29. }
  30. Console.Clear();//清屏</P>
  31. <P>
  32. ShowUI();
  33. Console.WriteLine("对战开始......");
  34. Console.WriteLine("{0}用A来表示",name [0]);
  35. Console.WriteLine("{0}用B来表示",name [1]);
  36. Console.ReadKey();

  37. }

  38. /// <summary>

  39. /// 该方法为实现游戏界面 显示游戏名称

  40. /// </summary>

  41. static void ShowUI()

  42. {

  43. Console.WriteLine("********************");

  44. Console.WriteLine("* *       令令令令        * *");

  45. Console.WriteLine("*   *   C# PK JAVA    *   *");

  46. Console.WriteLine("*             * *                 *");

  47. Console.WriteLine("********************");

  48. }
  49. }</P>
复制代码

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
如果单纯排除输入的只有一个空的的话,就直接在这里面添上一个就行了
while (name[0] == "" ||name[0]==" ")
在引号中间加一个空格。
如果是只要输入的字符串里面有空格就不执行的话,那就得
用substring把字符串离得每个字符都提出来,看看是不是空格。也就是name[0].SubString, 具体SubString 的用法,可以去网上搜一下,或者去MSDN查一下,都有例子,很容易理解的

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
接收用户输入时 做去除空格的处理

name[1] = Console.ReadLine().Trim();
回复 使用道具 举报
我也遇到了一样的问题,至今都没有得到解决
回复 使用道具 举报
如果你单纯想要名字里不含空格的话就用Console.ReadLine().Trim()就可以了,但可以说有的人名字中可能会含有空格(李_刚),“_”代表空格,
或者你想要名字不能为空格的话就再判断下是否含有单个或者多个空格。
回复 使用道具 举报
用一个循环对比每一个字符,如果为空跳出循环提示存在空字符串
回复 使用道具 举报
灰常感谢各位的指导!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马