Java 变量操作



我在这里有点困惑,但我相信有人可以对此有所了解。我正在创建一个程序,可以处理不同的标签设计并将它们发送到打印机。唯一的约束是管理员/软件用户控制数据库label_type部分中的变量。

以下是用户 ID 标签/徽章的当前逻辑:-

选择一个用户,显示他们所有的详细信息,然后我们可以打印徽章/标签

user_id上返回的详细信息如下所示,并在类中定义。

private String user_id;
private String external_user_id;
private String username;
private String uid;
private String firstname;
private String lastname;
private String email;
private String telephone;
private String user_group_name;
private String user_group_type;
private String company_name;
private String category;
private String region_name;

要使用的标签是从返回的下拉列表中选择的:-

private String format;
private String label_data;
private String label_filename;
private String label_directory;
private String label_offset;
private String variables;

label_data和变量是唯一的关注点,因为其他变量取决于打印机。

选择的打印机仅返回值,以便可以打印标签。

label_data可以由客户设计,并使其特定于数据库,他们用以下字符串替换变量

变量1变量2 变量3

变量控件在变量值内:-

变量 1-user_id变量 2-external_user_id变量 3-用户名,变量 4-uid变量 5-名字,变量 6-姓氏, 变量7-电子邮件,变量8-电话,变量9-user_group_name变量10-user_group_type变量11-company_name变量12-类别,变量13-region_name

以下是带有条形码的简单用户 ID 徽章的 Zebra ZPL 语言:-

CT~~CD,~CC^~CT~\\\^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR3,3~SD18^JUS^LRN^CI0^XZ\\\^XA\\^MMT\\^PW609^LL0406\^LS0\\^FT29,63^A0N,28,28^FH\\\FD 变量5^FS\^FT29,106^A0N,28,28^FH\\FD变量6^FS\^FO20,339^GB559,0,8^FS\\\^BY3,3,160^FT96,294^BCN,,Y,N\^FD>:variable4^FS\\\^FO18,121^GB560,0,8^FS\\\^PQ1,0,1,Y^XZ

如您所见,它将以下变量插入到 ZPL 中

变量5= 名字

变量6= 姓氏

变量 4= uid

我已经知道我会遇到这个问题。我将变量拆分为","然后"-"以退出:-

variable_number variable_name

变量1user_id

变量2external_user_id

变量 3用户名

在 for 循环中,我做了一个查找和替换:-

label_data = label_data.replace(variable_number, variable_name(;

如您所知,发生的情况是插入变量名称,而不是已返回的预定变量的值。我看过了,但我不知道该怎么做....

我得到label_data是:-

CT~~CD,~CC^~CT~\\\^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR3,3~SD18^JUS^LRN^CI0^XZ\\\^XA\\^MMT\\^PW609^LL0406\^LS0\\^FT29,63^A0N,28,28^FH\\FDfirtsname^FS\^FT29,106^A0N,28,28^FH\\FDlastname^FS\\\^FO20,339^GB559,0,8^FS\\^BY3,3,160^FT96,294^BCN,,Y,n\\\^FD>:uid^FS\\\^FO18,121^GB560,0,8^FS\\\^PQ1,0,1,Y^XZ

它应该在哪里

CT~~CD,~CC^~CT~\\^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR3,3~SD18^JUS^LRN^CI0^XZ\\\^XA\\^MMT\\^PW609^LL0406\^LS0\\^FT29,63^A0N,28,28^FH\\\FDJoe^FS\^FT29,106^A0N,28,28^FH\\FDBloggs^FS\^FO20,339^GB559,0,8^FS\^BY3,3,160^FT96,294^BCN,,Y,n\\\^FD>:236548^FS\\\^FO18,121^GB560,0,8^FS\\\^PQ1,0,1,Y^XZ

任何帮助表示赞赏

看起来当你解析变量时,你抓住了错误的部分。

variable5-firstname

在此部分中,在将字符串拆分为 "," 之后,如果我正在正确解释您试图解释的内容,您可以使用 indexOf 和子字符串来获取变量值。

String[] variables = string.split(",");
for(int i = 0; i < 13; i++){
...
if(i == 5){ //However you are parsing
firstname = variables[i].substring(0, variables[i].indexOf("-"));
}

现在,稍后当您将其替换为ZPL字符串时,您将获得实际的变量值,而不是标签。

最新更新