拆分字符串时出错

时间:2015-06-29 08:53:20

标签: c#

我对编程很陌生,我正在尝试将下面的字符串拆分为36.20C,但我一直得到ArgumentOutOfRangeWasUnhandled。为什么呢?

meteor run android-device -p 192.168.178.21:3000 --verbose

预期产量:36.20C

7 个答案:

答案 0 :(得分:4)

String.Substring的第二个参数是长度,但您提供了结束索引。你需要减去它们:

string Temp = inStr.Substring(++indexOfSpace, indexOfC - indexOfSpace);

你也可以从最后删除C

string Temp = inStr.Substring(++indexOfSpace).TrimEnd('C'); // using the overload that takes the rest

顺便说一句,在这种情况下,你应该使用IndexOf的重载和start-index:

int indexOfC = inStr.IndexOf('C', indexOfSpace);

这是一种更简单的方法:

Temp = inStr.Split(':').Last().TrimEnd('C');

答案 1 :(得分:1)

b2

答案 2 :(得分:1)

你可以像

那样做
string Temp = inStr.Substring(indexOfSpace + 1, inStr.Length - indexOfSpace - 1)

答案 3 :(得分:1)

如果选中documentation for Substring,您会看到第二个参数是长度,而不是结束位置。但是,有an overload for SubString that only needs the start position并且它会将字符串从那里返回到字符串的末尾:

int indexOfSpace = inStr.IndexOf(':');
string Temp = inStr.Substring(indexOfSpace + 1);

答案 4 :(得分:0)

Substring的第二个参数是长度。您必须更新如下:

string Temp = inStr.Substring(indexOfSpace + 1, indexOfC - indexOfSpace);

答案 5 :(得分:0)

只需使用string.Split()。

string[] temp = inStr.Split(':');
textbox1.Text = temp[1];
// temp[1] returns "36.20C"
// temp[0] returns "Temperature" 

答案 6 :(得分:0)

import org.apache.poi.hsmf.MAPIMessage;

public class PoiMsgMime {

    public String getMessageMime(String fileName) {
        try {
            new MAPIMessage(fileName);
            return "application/vnd.ms-outlook";
        } catch (Exception e) {
            return null;
        }
    }
}

在substring中,第二个参数是length,如果你没有指定任何参数substring进程直到string的结尾。