java下移植代码到c#时遇到如下误区。有必要从一个字符串中提取一个子字符串,从 n 个字符的第 k 个位置开始。实际上,代码是:
str = "((15+3)+14/2+(7*2)+3^2+(12+(7*2)))";
System.out.println(str.substring(27, 5));
对我来说,作为一个稍微熟悉sharp的人来说,代码还是比较通俗易懂的,也比较合乎逻辑。字符串中有 33 个字符,实际上,我需要从 27 - 一个字符(到 32,一个字符)中获取一个子字符串。但结果我得到了 OutOfBoundException 错误。即使我想从位置 10 中取出 3 个字符。可能是什么问题呢?
根据java文档
substring
,该方法采用 2 个参数:开始索引 - 从哪里开始切割,结束索引 - 切割到哪里。方法
substring
接受开始和结束,而不是开始和字符数我想通了,我只是非常不擅长 java。有必要明确指定字符在数组中的位置,而不是我想在 c# 中采用的元素数量。
显示最后 5 个字符将有助于代码: