c# 那个取值的提示索引和长度必须引用该字符串内的位置。

小弟刚学C#求大神指教Console.WriteLine("请输入需要解析的字符:例如“192.168.2.234[port=8080]”");stringa=Conso... 小弟刚学 C# 求大神指教

Console.WriteLine("请输入需要解析的字符:例如“192.168.2.234[port=8080]”");
string a = Console.ReadLine();
int a1 = a.IndexOf('[');
string a2 = a.Substring(0,a1);
Console.WriteLine(a2);
int a3 =a.LastIndexOf('=');
int a4 = a.LastIndexOf(']');
string a5 = a.Substring(a3+1,a4-1);

Console.WriteLine("IP地址为{0},端口号为{1}",a2,a5);
Console.ReadKey();
展开
 我来答
cjj796
2013-09-15 · TA获得超过8709个赞
知道大有可为答主
回答量:1.3万
采纳率:68%
帮助的人:3459万
展开全部

注意红圈的地方,你这里取的是字符串的长度,而不是你检测的 ']' 的位置;

一般的端口号都是4位的,那么你直接写 4 就可以;

如果端口号,不是 4 位的,那么就要 a4 - 1 - a3 了;

这里要明白的是,Substring 的第二个参数,是要截取的字符串的长度。 

追问
谢谢大神解答
追答
不要客气,以后有问题,直接对我提问,知道的一定帮你
不轻易出现
2013-09-15 · 超过17用户采纳过TA的回答
知道答主
回答量:86
采纳率:0%
帮助的人:42.8万
展开全部
Substring要判断长度先才不会出错误。
加外
string a5 = a.Substring(a3+1,a4-1);
这里改成
string a5 =a.Substring(a3 + 1, a4-a3-1);
测试过了可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式