Java-字符串值未保存在字符串数组中

Java-字符串值未保存在字符串数组中,java,arrays,Java,Arrays,在下面的代码中 stepOrExpected[i][k] = "Step"; System.out.println(stepOrExpected[i][k]); 通过使用带i和k的循环,我将值保存在stepOrExpected(二维数组)中。这里的问题是字符串未被保存。如果我在为stepOrExpected赋值后立即打印,则打印为空 此外,如果我打印I和k,这两个值都是正确的 请说明为什么字符串未保存在二维数组中 我已将代码粘贴到下面,我面临的问题是 (if (StepLstNode.getN

在下面的代码中

stepOrExpected[i][k] = "Step";
System.out.println(stepOrExpected[i][k]);
通过使用带i和k的循环,我将值保存在stepOrExpected(二维数组)中。这里的问题是字符串未被保存。如果我在为stepOrExpected赋值后立即打印,则打印为空

此外,如果我打印I和k,这两个值都是正确的

请说明为什么字符串未保存在二维数组中

我已将代码粘贴到下面,我面临的问题是

(if (StepLstNode.getNodeName().equals("Step"))
{
stepOrExpected[i][k] = "Step";)
实际代码:

if (ModulenameLstNode.getNodeType() == Node.ELEMENT_NODE) 
{
    NodeList TCLst = ModulenameLstNode.getChildNodes();

    TCCount = docInput.getElementsByTagName("TC").getLength();
    System.out.println(TCCount);
    TCID = new String[TCCount];
    //TCDepend = new String[TCCount];
    TCDescription = new String[TCCount];
    stepCountInATCOfModule = new int[TCCount];
    ExpectedResult = new String[TCCount];
    ActualResult_Pass = new String[TCCount];
    ActualResult_Fail = new String[TCCount];
    //Result.XMLCreator();
    int i=0;
    stepOrExpected = new String [TCCount][100];
    Action = new String [TCCount][100];
    RefObj = new String [TCCount][100];
    Val = new String [TCCount][100];

    for (int TC = 0; TC < TCLst.getLength(); TC++) 
    {

        int k=0;
        Node TCLstNode = TCLst.item(TC);

        if (TCLstNode.getNodeType() == Node.ELEMENT_NODE) 
        {
            System.out.println(TCLstNode.getNodeName());

            TCID[i] = ObjectType.getAttribute(TCLstNode,"Id");
            //TCDepend[i] = ObjectType.getAttribute(TCLstNode,"Depend");
            TCDescription[i] = ObjectType.getAttribute(TCLstNode,"Description");

            NodeList StepLst = TCLstNode.getChildNodes();


            System.out.println(StepLst.getLength());
            for (int Step = 0; Step < StepLst.getLength(); Step++) 
            {
                Node StepLstNode = StepLst.item(Step);

                if (StepLstNode.getNodeType() == Node.ELEMENT_NODE) 
                {

                    if (StepLstNode.getNodeName().equals("Step"))
                    {
                        stepOrExpected[i][k] = "Step";
                        Action[i][k] = ObjectType.getAttribute(StepLstNode,"Action");
                        RefObj[i][k] = ObjectType.getAttribute(StepLstNode,"RefObj");
                        Val[i][k] = ObjectType.getAttribute(StepLstNode,"Val");
                        stepCountInTC++;
                        k++;
                        System.out.println(i);
                        System.out.println(k);
                        System.out.println(ObjectType.getAttribute(StepLstNode,"Action"));
                        System.out.println(stepOrExpected[i][k]);
                    }
                    else if (StepLstNode.getNodeName().equals("Expected"))
                    {
                        stepOrExpected[i][k] = "Expected";
                        Action[i][k] = ObjectType.getAttribute(StepLstNode,"ExpAction");
                        RefObj[i][k] = ObjectType.getAttribute(StepLstNode,"ExpTarget");
                        Val[i][k] = ObjectType.getAttribute(StepLstNode,"ExpVal");
                        stepCountInTC++;
                        k++;
                    }
                    else if (StepLstNode.getNodeName().equals("ExpectedResult"))
                    {
                        ExpectedResult [i] = StepLstNode.getTextContent();
                    }
                    else if (StepLstNode.getNodeName().equals("ActualResult_Pass"))
                    {
                        ActualResult_Pass [i] = StepLstNode.getTextContent();
                    }
                    else
                    {
                        ActualResult_Fail [i] = StepLstNode.getTextContent();
                    }

                }//Step NodeType

            }//Step for


            stepCountInATCOfModule[i] = stepCountInTC;
            i++;
            stepCountInTC = 0;

        }//TC if

    }//TC for
}
if(ModulenameLstNode.getNodeType()==Node.ELEMENT\u Node)
{
NodeList TCLst=ModulenameLstNode.getChildNodes();
TCCount=docInput.getElementsByTagName(“TC”).getLength();
系统输出打印项次(TCCount);
TCID=新字符串[TCCount];
//TCDepend=新字符串[TCCount];
TCDescription=新字符串[TCCount];
stepCountInATCOfModule=新整数[TCCount];
ExpectedResult=新字符串[TCCount];
ActualResult_Pass=新字符串[TCCount];
ActualResult_Fail=新字符串[TCCount];
//Result.XMLCreator();
int i=0;
steporeExpected=新字符串[TCCount][100];
Action=新字符串[TCCount][100];
RefObj=新字符串[TCCount][100];
Val=新字符串[TCCount][100];
对于(int TC=0;TC
罪魁祸首是
k++。在将其打印到控制台之前,您正在递增
k
。因此,按如下方式修改代码:

stepOrExpected[i][k] = "Step";
Action[i][k] = ObjectType.getAttribute(StepLstNode,"Action");
RefObj[i][k] = ObjectType.getAttribute(StepLstNode,"RefObj");
Val[i][k] = ObjectType.getAttribute(StepLstNode,"Val");   
System.out.println(i);
System.out.println(k);
System.out.println(ObjectType.getAttribute(StepLstNode,"Action"));
System.out.println(stepOrExpected[i][k]);
stepCountInTC++; //moved counter
k++; //moved counter

一切都应该如预期的那样起作用。

理论上,这应该起作用。你能给出它所处的环境吗,或者至少能用嵌套循环运行代码吗?没有一个清晰的代码片段可以说什么请发布整个相关代码。你真正的代码在设置和打印之间发生变化。。。因此,它设置一个元素,然后打印另一个元素。在打印之前,您将递增
k
k++