java 将光标移至行首_Java:将条件移至消息文件

java 将光标移至行首

Java类ResourceBundle和MessageFormat提供了一个很好的工具集,用于解决Java应用程序内部的本地化消息。 这篇文章提供了一个小示例,说明如何使用ChoiceFormat将与消息相关的简单条件从Java代码移动到消息文件中。 如果您已经知道ChoiceFormat我认为您不会在本文中学到任何新东西。 但是,以我的经验,许多开发人员并不了解这个漂亮的小功能。

假设我们有一个用户可以在其中评论某些内容的应用程序。 我们希望在应用程序中的某个位置显示一条简单消息,该消息显示某条内容被评论的频率。 我们要根据评论数显示以下消息:

评论数 信息
0 这个元素没有评论
1个 该元素包含一个评论
2+ 该元素包含[numberOfComments]条评论

为了使用Java的ResourceBundleMessageFormat实现此功能,我们可以使用以下代码。

消息文件(例如messages_en.properties ):

comments.no=This element contains no comments
comments.one=This element contains one comment
comments.multiple=This element contains {0} comments

Java代码:

private String resolveMessage(String key, Object... args) {String pattern = bundle.getString(key);return MessageFormat.format(pattern, args);
}private String getMessage(int numberOfComments) {String message = null;if (numberOfComments == 0) {message = resolveMessage("comments.no");} else if (numberOfComments == 1) {message = resolveMessage("comments.one");} else {message = resolveMessage("comments.multiple", numberOfComments);}return message;
}

方法resolveMessage()用于使用ResourceBundleMessageFormat将消息密钥解析为实际消息。 为了实现所请求的功能,我们在属性文件中添加了三个消息键。 在getMessage()我们实现了根据传递的numberOfComments变量决定应使用哪个消息密钥的逻辑。

getMessage()方法产生预期的结果:

getMessage(0)   // "This element contains no comments"
getMessage(1)   // "This element contains one comment"
getMessage(2)   // "This element contains 2 comments"
getMessage(10)  // "This element contains 10 comments"

但是,实际上有一种更简单的方法可以执行此操作。 实际上,我们可以将在getMessage()实现的完整逻辑移到属性文件中。

我们只需要定义一个键:

comments.choice=This element contains {0,choice,0#no comments|1#one comment|1<{0} comments}

使用此消息,我们可以完全删除getMessage()的逻辑:

private String getMessageUsingChoice(int numberOfComments) {return resolveMessage("comments.choice", numberOfComments);
}

结果是完全一样的:

getMessageUsingChoice(0)   // "This element contains no comments"
getMessageUsingChoice(1)   // "This element contains one comment"
getMessageUsingChoice(2)   // "This element contains 2 comments"
getMessageUsingChoice(10)  // "This element contains 10 comments"

让我们仔细看看定义的消息:

  • 0,choice –告诉MessageFormat我们要为第一个参数(0)应用ChoiceFormat
  • 0#无注释–表示如果第一个参数为0,我们希望使用消息无注释
  • 1#one注释–如果第一个参数为1,则返回一个注释
  • 1 <{0}条注释–如果第一个参数大于1,则使用子模式{0}条注释

总之,选择提供了一种将简单的消息相关条件从Java代码移到消息文件中的好方法。

参考: Java:从mscharhag,Programming and Stuff博客的JCG合作伙伴 Michael Scharhag 将条件转移到Message文件中 。

翻译自: https://www.javacodegeeks.com/2013/12/java-moving-conditions-into-message-files.html

java 将光标移至行首

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344682.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2020-12-19通信电子线路第一章

振幅键控&#xff08;Amplitude-shift keying&#xff09; (ASK) 相位键控&#xff08;phase-shift keying&#xff09; (PSK) 频率键控&#xff1a;&#xff08;Frequency-shift keying&#xff09; (FSK) CDMA (Code Division Multiple Access) 码分多址 软件无线电结构&am…

【渝粤教育】广东开放大学 网络市场与预测 形成性考核 (23)

选择题 题目&#xff1a;&#xff08;&#xff09;是利用互联网发掘和了解顾客需求、市场机会、竞争对手、行业潮流、分销渠道以及战略合作伙伴等方面的情况。 题目&#xff1a;市场调查首先要解决的问题是&#xff08; &#xff09;。 题目&#xff1a;为了在市场调查方案实施…

在Ubuntu 18.04上实际安装OpenJDK 11

OpenJDK 11于 1018年9月25日发布 。由于这是版本8之后的第一个LTS版本&#xff0c;因此期待已久。 在Ubuntu 18.04&#xff08;Bionic Beaver&#xff09;上安装了该软件包后&#xff0c;该软件包附带了一个名为openjdk-11-jdk的软件包&#xff0c;令我惊讶的是它仍然是早期版本…

【渝粤教育】广东开放大学 计量基础知识 形成性考核 (48)

选择题 题目&#xff1a;工业计量也称工程计量。一般指工业、工程、生产企业中的&#xff08;&#xff09;计量。 答案&#xff1a;看左侧 题目&#xff1a;我国古代有许多令炎黄子孙骄傲自豪的计量文化&#xff0c;我们耳熟能详的就有&#xff08;&#xff09;等。 答案&#…

Verilog二选一数据选择器

//二选一数据选择器module mux2_1(a0,a1,s,f) input a0,a1,s; output f;//默认是wire&#xff08;线&#xff09;变量 assign f(s)?a1:a0;//assign 专门给线类型变量赋值 endmodulemodule mux2_1(a,s,f) input s; input [1:0]a&#xff1b; output f; reg f;//reg(寄存器型) a…

【渝粤教育】电大中专Office办公软件 (1)作业 题库

1.西文字符一般采用的编码是&#xff08; &#xff09;。 A.ASCII码 B.BCD码 C.国标码 D.EBCDIC码 正确 正确答案&#xff1a;左边查询 学生答案&#xff1a;A 2.若已知一汉字的国标码是5E38&#xff0c;则其内码是&#xff08; &#xff09;。 A.DE38 B.DEB8 C.7E58 D.5EB8 错…

现代交换技术学习笔记001

1、交换 在通信领域中&#xff0c;所谓交换&#xff0c;就是在通信网上&#xff0c;负责在通信的源和目的终端之间建立通信信道传送通信信息的机制&#xff08;控制&#xff09;。 2、通信网的组成&#xff08;三要素&#xff09; 交换设备&#xff0c;传输设备&#xff0c;终端…

【渝粤教育】电大中专中医基础知识 (3)作业 题库

1.“证”是指 A.疾病的体征与症状 B.对疾病的症状与体征的分析 C.对疾病某一阶段的病理概括 D.对疾病全过程规律的认识 E.对疾病的症状与体征的调查 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;未作答 2.中医学认识疾病和治疗疾病的基本思路是 A.恒动观念 B.同病异…

【渝粤教育】电大中专会计电算化作业 题库

1.下列有关会计电算化狭义概念的说法正确的是()。 A.以会计理论为主体的电子信息技术在会计工作中的应用 B.与实现电算化有关的所有工作 C.以电子计算机为主体的电子信息技术在会计工作中的应用 D.与实现电算化有关的主要工作 错误 正确答案&#xff1a;左边查询 学生答案&…

移动通信学习笔记_01概述

OSI 7层模型&#xff1a;应用层、表示层、会话层、传输层、网络层、数据链路层、物理层 TCP/IP共5层&#xff1a;物理层、数据链路层、网络层、传输层&#xff08;运输层&#xff09;、应用层 物理层&#xff1a;编码&#xff08;信道编码&#xff09;、调制 本课程&#xff1a…

java 绑定微信号开发_Java开发中的更多常见危险信号

java 绑定微信号开发在《 Java开发中的常见危险信号》一文中&#xff0c;我研究了一些不一定本身就是错误或不正确的做法&#xff0c;但它们可能表明存在更大的问题。 这些“红色标记”类似于“代码气味”的概念&#xff0c;我在这篇文章中引用的某些特定“红色标记”被称为“代…

【渝粤教育】电大中专学习指南_1作业 题库

1.中央广播电视中等专业学校&#xff08;&#xff09;颁发国民教育系列中等学历教育毕业证书的资格。 A.不具有 B.具有 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;A 2.并面向社会直接招收初中毕业生和在职青年举办&#xff08;&#xff09;职业教育。 A.高等 B.中…

【渝粤教育】电大中专就业指导 (6)作业 题库

1.&#xff08;&#xff09;给中职生就业带来的机遇和挑战 A.发展标准化服务业 B.一带一路 C.“十三五”规划 正确 正确答案&#xff1a;左边查询 学生答案&#xff1a;C 2.最受企业欢迎的人才应具备&#xff08;&#xff09;素质 A.文化认同、敬业精神、团队意识、创新思想、应…

计算机二级office学习之PPT操作题考点整理

考点1 新建幻灯片 01 大纲级别 S1、word中&#xff1a;选择格式相似的文本-段落大纲级别&#xff1b; S2、打开PPT&#xff1a;新建幻灯片-幻灯片从大纲-选择word文档。 (S3、不保留原素材的格式&#xff09;在预览窗口ctrlA&#xff0c;右键重设幻灯片。 注&#xff1a;若无法…

JDK 12的String :: transform方法的简要但复杂的历史

最近有人建议从JDK 12中删除Java预览功能Raw String Literals &#xff08; JEP 326 &#xff09;&#xff0c; 现在正式宣布将删除预览功能 &#xff08; Java SE 12 [JSR 386] 25版将其删除 &#xff09;。 JDK String类中已经添加了几种方法来支持此功能。 即使在删除原始字…

【渝粤教育】电大中专常见病药物治疗 (2)_1作业 题库

1.作为退热药&#xff0c;阿司匹林的劣势是&#xff08;&#xff09;。 A.口服吸收迅速而完全 B.婴幼儿发热用阿苯片 C.儿童用药可引起Reye综合征&#xff0c;尤其是病毒性感染引起的发热 D.作用于下丘脑体温调节中枢 E.解热镇痛作用较强 错误 正确答案&#xff1a;左边查询 学…

计算机二级考前急救之Word(上)

一、文件选项卡 &#xff08;思维导图来源&#xff1a;小黑老师&#xff09; 1、另存为PDF格式&#xff1a;&#xff08;另存为快捷键&#xff1a;F12&#xff09; 2、去掉兼容模式&#xff1a;文件-信息-转换 3、删除不可见的内容&#xff1a;文件-信息-检查文档&#xff08…

【渝粤教育】电大中专建筑材料作业 题库

1.颗粒材料的密度为ρ&#xff0c;表观密度为ρ0&#xff0c;堆积密度为ρ0′&#xff0c;则存在下列关系 &#xff08; &#xff09;。 A.ρ0′&#xff1e;ρ&#xff1e;ρ0 B.ρ&#xff1e; ρ0′&#xff1e;ρ0 C.ρ0 &#xff1e;ρ&#xff1e;ρ0′ D.ρ&#xff1e;…

【渝粤教育】电大中专沟通技巧作业 题库

1可以通过&#xff08; &#xff09;的方法来对抗讲话时的紧张感。 A心理暗示 B自我鼓励 C运用合适的肢体语言 D以上方法均可 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;A 2以下说法正确的是&#xff08; &#xff09; A沟通要有明确的目标 B沟通不需要形成协议 …

常用快捷键

1、常用快捷键 快捷键作用快捷键作用CtrlShift切换输入法AltF4快速关闭程序Ctrl空格中英文输入法切换CtrlS保存Ctrl。切换中英文标点CtrlA全选WindowsE快速打开计算机CtrlZ撤销WindowsD快速回到桌面CtrlC复制WindowsL快速锁定电脑CtrlX剪切F1帮助键CtrlV粘贴F2重命名CtrlF查找…