Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java doPost()方法中不熟悉的代码数组行_Java_Arrays_Servlets - Fatal编程技术网

Java doPost()方法中不熟悉的代码数组行

Java doPost()方法中不熟悉的代码数组行,java,arrays,servlets,Java,Arrays,Servlets,下面的代码是来自servlet的doPost方法的代码,但并不完整。如您所见,这是从网页获取参数的逻辑,即姓名和出生日期。我确实理解getparameter方法,但在第5行中,它是什么样的数组表示?我不习惯看到这种数组方法。到目前为止,我所习惯或处理的是 type[] arrayName = new type[length]; 及 在第五行。为什么数组声明等于某个点运算符和某个方法。请解释,或者,如果有标签或主题名称,对于这种数组表示,请让我知道,我将立即接受培训 protected void

下面的代码是来自servlet的doPost方法的代码,但并不完整。如您所见,这是从网页获取参数的逻辑,即姓名和出生日期。我确实理解getparameter方法,但在第5行中,它是什么样的数组表示?我不习惯看到这种数组方法。到目前为止,我所习惯或处理的是

type[] arrayName = new type[length];

在第五行。为什么数组声明等于某个点运算符和某个方法。请解释,或者,如果有标签或主题名称,对于这种数组表示,请让我知道,我将立即接受培训

protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        String firstName = request.getParameter("first-Name");
        System.out.println("Firstname:" + firstName);
        String lastname = request.getParameter("last-name");
        String dob_raw = request.getParameter("dob");
        String dobArray[] = dob_raw.split("\\/");
        String month = dobArray[0];
        String day = dobArray[1];
        String year = dobArray[2];
    }
youtube链接到教程,以备参考

我想我们谈论的是线路:

String dobArray[] = dob_raw.split("\\/");
:

围绕给定正则表达式的匹配项拆分此字符串。 此方法的工作方式类似于通过调用具有 给定的表达式和零的极限参数。尾随空 因此,结果数组中不包括字符串

\\/是正则表达式字符串。认为正则表达式不是真的,而是因为/在java字符串中,它会跳过它的字符。然后又通过正则表达式语言进行了转义,所以实际上,在考虑了所有转义发生的情况之后,就只剩下了。简言之,将字符串分成几段,其除数与/字符匹配。对于表示URI(可能是文件路径,在本例中是日期)的字符串来说,这可能很方便


我想如果你想知道在哪里可以学到更多的东西,你可能会发现正则表达式很有用。

String类方法splitString模式声明了内存,它是字符串的实际数组。在字符串数组[]中声明类型,该数组是字符串数组的句柄

你打字的时候 Object objectArray[]=新对象[3];
您有一个句柄objectArray,指向由“new Object[3]”初始化的对象数组。

字符串上有一个名为split的方法,该方法返回一个数组,我们所做的就是将该数组分配给变量dobArray。

。实际上,我希望第四行类似于字符串dob_raw=request.getParameterdob;对于Katana314,这正是我所期望的,但是这里的导师希望输出到控制台month/date/year…因此我认为选择了数组过程。这是youtube的链接,在7:10不,我理解这一部分。奇怪的是,代码正在检索姓氏参数-与前一行相同。哦,非常抱歉,我键入的是错误的。它实际上应该是字符串dob_raw=request.getParameterdob;请注意,正则表达式中的“\”字符也是转义字符。所以正则表达式\/的意思是:一个literal/。由于in/在正则表达式中不是特殊字符,因此转义实际上是多余的。因此,split\\/将只在“/”上拆分。实际上,我的问题是我们通常声明并初始化或创建一个数组,作为以下类型之一[]arrayName=new type[length];和类型[]arrayName;arrayName=new type[length]或type[]arrayName={1,2,3,4}…但是在第5行中,没有创建数组或没有给它一个长度,我们为什么要分配给=dob_raw.split\\\/@DigitalDave从技术上讲,我们不是在创建阵列。Split创建数组并返回它,我们只需获取返回的数组并将其分配给变量dobArray。然而,如果您想了解拆分是如何实现的,您会看到一行类似于类型arrayName=new-type[length];
String dobArray[] = dob_raw.split("\\/");