Java 需要使用get()和set()方法拆分字符串

Java 需要使用get()和set()方法拆分字符串,java,string,Java,String,我必须为这段代码使用getter和setter 实际上我用了两个类来得到结果 以下是Ndc课程: 包java4u.com public class Ndc { private String ndcQUAL; private String ndcCODE; private String ndcUNIT; private String ndcQTY; String str; public String getStr() { ret

我必须为这段代码使用getter和setter 实际上我用了两个类来得到结果

以下是Ndc课程:

包java4u.com

public class Ndc {


    private String ndcQUAL;
    private String ndcCODE;
    private String ndcUNIT;
    private String ndcQTY;
     String str;
    public String getStr() {
        return str;
    }
    public void setStr(String str) {
        this.str = str;
    }
    public String getndcQUAL() {

        if(str.contains("N4"))
        {
            return "N4";
        }
        else
        {

        return "";
        }
    }
    public void setndcQUAL(String getndcQUAL) {

        this.ndcQUAL = getndcQUAL;
    }
    public String getndcCODE() {
        if(str.contains("N4")){
            int i=str.indexOf("N4");
            str=str.substring(i+2,i+13);
            return str;
        }
        else
        {
            return "";
        }

    }
    public void setndcCODE(String getndcCODE) {
        this.ndcCODE = getndcCODE;
    }
    public String getndcUNIT() {
        if(str.contains("N4")) {
            str=str.substring(i+13,i+15);
            return str;
        }else
        {
            return "";
        }

    }
    public void setndcUNIT(String getndcUNIT) {
        this.ndcUNIT = getndcUNIT;
    }
    public String getndcQTY() {
        if(str.contains("N4")) {
            do {
                int i=str.indexOf(getndcUNIT());
                str=str.substring(i,i++);
                return str;

            } while(str.length()<=35 || str.contains("N4") || str.contains("TPL"));

        else
        {
            return "";
        }


    }
    public void setndcQTY(String getndcQTY) {
        this.ndcQTY = getndcQTY;
    }




}
无法理解如何将字符串值从Ndc.java传递到Test.java,也无法理解如何将其他方法从Ndc.java传递到Test.java

下面是示例输出 str=N412345678923UN2345.677 它应该会回来 N4 12345678923 联合国 2345.67


请帮帮我

因为您没有构造函数。您需要手动设置str

如果此N412345678923UN2345.677是br.readLine。然后需要在NDC对象的中设置它

String str = br.readLine();
ndc.setStr(str);               // now the str is set in your ndc object.

System.out.println(ndc.getndcCODE());
System.out.println(ndc.getndcUNIT());
System.out.println(ndc.getndcCQTY());

您应该首先按如下方式传递字符串:

ndc.setndcQUAL(yourString);
然后获取所需的值:

System.out.print(ndc.getndcQUAL());

您的方法有一个主要缺陷-您需要按照预定义的顺序执行这些方法,否则它将提取错误的数据。但是,您可以使用setStrString str方法初始化所有正确的字段,然后使用getter方法返回您在setStr中设置的值。。。方法:

如果没有输入有效的N4字符串,则要中断循环,首先必须定义一种循环,并在将输入字符串分配给setStr后检查getndcQUAL返回值是否等于N4…:

System.out.print(ndc.getndcQUAL());
public class Ndc 
{
    private String ndcQUAL;
    private String ndcCODE;
    private String ndcUNIT;
    private String ndcQTY;

    public void setStr(String str) 
    {
        int pos = 0;

        if (str.contains("N4"))
        {
            pos = str.indexOf("N4");
            this.ndcQUAL = str.substring(pos, pos+=2);
            this.ndcCODE = str.substring(pos, pos+=11);
            this.ndcUNIT = str.substring(pos, pos+=2);
            String data = str.substring(pos);

            // trim the data at the end corresponding to the provided class logic
            int p = data.length();
            if (data.contains("N4"))
            {
                p = data.indexOf("N4");
            }
            else if (data.contains("TLP"))
            {
                p = data.indexOf("TLP");
            }

            if (p > 35)
                p = 35;

            this.ndcQTY = data.substring(0, p);
        }
        else
            this.ndcQUAL = "";
    }

    public String getndcQUAL() 
    {
        return this.ndcQUAL;
    }

    public String getndcCODE() 
    {
        return this.ndcCODE;
    }

    public String getndcUNIT() 
    {
        return this.ndcUNIT;
    }

    public String getndcQTY() 
    {
        return this.ndcQTY;
    }
}
public class Test 
{
    public static void main(String args[]) 
    {
        Ndc ndc=new Ndc();
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

        try 
        {
            do
            {
                System.out.println("enter a string:");
                ndc.setStr(br.readLine());

                System.out.println("QUAL: "+ndc.getndcQUAL());
                System.out.println("CODE: "+ndc.getndcCODE());
                System.out.println("UNIT: "+ndc.getndcUNIT());
                System.out.println("QTY: "+ndc.getndcQTY());
            }
            while("N4".equals(ndc.getndcQUAL()));
        } 
        catch (IOException e) 
        {
            e.printStackTrace();
        }
    } 
}