Java 需要使用get()和set()方法拆分字符串
我必须为这段代码使用getter和setter 实际上我用了两个类来得到结果 以下是Ndc课程: 包java4u.comJava 需要使用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
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();
}
}
}