• 全部
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm&WPF
  • C#开发新技术
  • 问答

c#,split方法获得用户以空格分隔的两个数字,数组却为空,是什么情况?

Fantacy936 科瑞恩 电气工程师  2020-11-28 09:18:43
用户输入两个数字,并以空格分隔,我用split方法这样写,调试时发现获得是的数组却是空的,导致我进行不了下一步了,这是什么原因?请各位大佬提点一下我这个菜鸟,谢谢!
static void Main(string[] args)
{
string s = Console.ReadLine();
string[] x = s.Split(new char[] {' '},StringSplitOptions.RemoveEmptyEntries;
int price = Convert.ToInt32(x[0]);
int discount = Convert.ToInt32(x[1]);
double newPrice = price * (discount / 100);
string k = newPrice.ToString();
Console.WriteLine(k);
//Console.WriteLine(String.Format("{0:N2}",k));
Console.ReadKey();
}
...全文
6116 点赞 收藏 13
写回复
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
坚果o 2020-12-01
price是0的话检查下你的x[0]是不是正确是数值,价格最好还是用decimal。
回复
gs0038 2020-11-30
引用 4 楼 Fantacy936 的回复:
大佬,这个就是调试的画面,您看看,我看了很多网上的例子,到现在也没想明白
我等了半天,你也没继续向下执行呀,执行下来,x才有值
回复
yijigu2 2020-11-30
引用 7 楼 Fantacy936 的回复:
[quote=引用 5 楼 xuzuning的回复:]断电打在 int price = Convert.ToInt32(x[0]); 上 检查s 的值
后面是x有值了,但是price是0[/quote] string[] split = words.Split(new Char[] { ' ' }); 不要后面的StringSplitOptions.RemoveEmptyEntries 空格 被你排除了
回复
yijigu2 2020-11-30
null 不是值
回复
正怒月神 2020-11-30
先学会调试。。。。。 你至少要等到图片中的下一行,才能看到x的值。
回复
xionghanxing 2020-11-30
我用VS2010把你代码复制过去调试,能正常运行。你最好把你的调试情况和报错发一下。
回复
Fantacy936 2020-11-28
引用 5 楼 xuzuning的回复:
断电打在 int price = Convert.ToInt32(x[0]); 上 检查s 的值
后面是x有值了,但是price是0
回复
Fantacy936 2020-11-28
引用 5 楼 xuzuning的回复:
断电打在 int price = Convert.ToInt32(x[0]); 上 检查s 的值
我专门在控制台输出了s,它是获得了我的输入,
回复
xuzuning 2020-11-28
断电打在 int price = Convert.ToInt32(x[0]); 上 检查s 的值
回复
Fantacy936 2020-11-28
大佬,这个就是调试的画面,您看看,我看了很多网上的例子,到现在也没想明白
回复
ziqi0716 2020-11-28
var userData="aa bb cc dd ee"; var arr=userData.Split(' '); foreach(var str in arr){ Console.WriteLine(str); //如果要转int,可以使用var i=int.Parse(str); //安全起见,可以用int.TryParse(),传参参考函数原型,这里就不啰嗦了. }
回复
编程以测试为准,而不是单纯纠缠逻辑问什么“是什么原因?”。
回复
贴出你的调试画面,你是否在监视窗口或者调试命令窗口调试了?
回复
相关推荐
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2020-11-28 09:18
社区公告

让您成为最强悍的C#开发者