非特殊情况,数组超出范围 - c#

我了解我要尝试做的事有点骇人听闻,但这仍然很有趣。

我处于阵列很可能没有我期望的那么多项目的情况。

这是概念:

namespace TESTAPP
{
    class Program
    {
        static void Main(string[] args)
        {
            string derp = "foooooo";
            //The split is important, you might not have the character there to split by
            Writer(derp.Split('x')[0] ?? ".");
            Writer(derp.Split('x')[1] ?? ".");
        }

        private static void Writer(string writeme)
        {
            Console.WriteLine(writeme ?? "..");
        }
    }
}

当然,执行上述打印时我并不感到惊讶:

foooooo

Unhandled Exception: System.IndexOutOfRangeException: Index was outside the bounds of the array.
at TESTAPP.Program.Main(String[] args) in [snip]\TESTAPP\Program.cs:line 15

我应该如何从逻辑上处理这种情况? try/catch块似乎过大。

参考方案

首先,您只想拆分一次,而不是再拆分每个部分:

string derp = "foooooo";
string[] parts = derp.Split('x');
// parts == { "foooooo" }
// parts.Length == 1

现在您有了一个包含许多部分的数组,因此您可以在访问每个部分之前简单地检查Length属性:

Writer(parts.Length > 0 ? parts[0] : ".");
Writer(parts.Length > 1 ? parts[1] : ".");
Writer(parts.Length > 2 ? parts[2] : ".");
Writer(parts.Length > 3 ? parts[3] : ".");
Writer(parts.Length > 4 ? parts[4] : ".");

要么

for (int i = 0; i < 5; i++)
{
    Writer(parts.Length > i ? parts[i] : ".");
}

输出:

foooooo..
...
...
...
...

当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java

我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…

改造正在返回一个空的响应主体 - java

我正在尝试使用Retrofit和Gson解析一些JSON。但是,我得到的响应机构是空的。当我尝试从对象中打印信息时,出现NullPointerException。我确保URL正确,并且我也确保POJO也正确。我正在使用jsonschema2pojo来帮助创建POJO类。这是我要解析的JSON{ "?xml": { "@versi…

java split regex-字符的任意组合 - java

我正在使用3个字符分割字符串:空格,破折号和逗号我想要的是能够使用这3个字符的任意组合进行拆分,例如:-,(破折号后跟逗号)或,--(逗号后加2破折号)或- , -(破折号,逗号间隔破折号)等 String address = "Sector -18B, Dwarka"; String[] addressParts = address.s…

每个文件合并后添加换行 - python

我有很多类似以下内容的JSON文件:例如。1.json{"name": "one", "description": "testDescription...", "comment": ""} test.json{"name"…

Json到php,json_decode返回NULL - php

我正在用PHP进行JSON解析器的一些API,用于存储有关遗产的信息。我在解析时遇到问题,因为它返回的是NULL值而不是数组或对象。简单的JSON代码可以很好地解析,但是可以这样:{"success":true,"totalCount":1,"data":[{"id":99694…