C#:输入的字符串格式不正确

这个报错通常是字符串转数字或日期时格式对不上,或者字符串本身为空导致的。

🔍 常见出错原因

  1. 空字符串转换:把空串直接转成 int 或 DateTime 会报错。

  2. 格式不匹配:比如字符串"abc"想转成数字,或者日期字符串格式不对。

  3. string.Format 问题:格式字符串里花括号没正确转义,占位符数量不对。

  4. 特殊字符干扰:字符串里有制表符、换行符等影响解析。

✅ 怎么解决

  1. 先判断再转换:用 TryParse 替代 Parse,转换失败不会抛异常。

if (int.TryParse(str, out int result)) {

// 转换成功,使用 result

}

  1. 检查字符串是否为空:转换前先判断`string.IsNullOrEmpty(str)`。

  2. 确认日期格式:用 DateTime.ParseExact 指定确切格式,如"yyyy-MM-dd"。

  3. 检查 string.Format:需要输出花括号时用双写转义,`{{`表示`{`,`}}`表示`}`。

相关推荐
淡海水20 小时前
10-01-互操作-C#与C++边界的内存管理
unity·c#·游戏引擎·.netcore·gc
WarPigs1 天前
C#把byte[]以十六进制打印,带分割符
c#
暴走约伯1 天前
【VFX工具链源码拆解 04】拯救丢失的绑定:Timeline 一键克隆与层级相对路径重映射算法
unity·c#·游戏引擎·硬件工程
1-1=01 天前
C# 反射
c#·.net·.netcore
步步为营DotNet1 天前
.NET 可观测性选型:Metrics、ActivitySource、EventSource 到底该用哪个
c#·.net·metrics·可观测性
吃一碗粉只付一碗钱2 天前
16-SqlSugar多库ConfigId与按实体选连接
sqlserver·c#
rockey6272 天前
AScript之字符串模板
c#·.net·script·expression·动态脚本
will_net2 天前
Redis集群部署+Redis 链接地址放入Aollo +c#项目接入Redis
redis·c#·bootstrap
BuHuaX2 天前
Lua 与 ToLua:运行机制及热更新原理
开发语言·unity·junit·c#·lua