1. 程式人生 > >java中自定義使用{0}佔位符功能之MessageFormat類

java中自定義使用{0}佔位符功能之MessageFormat類

MessageFormat提供一種語言無關的方式來組裝訊息,它允許你在執行時刻用指定的引數來替換掉訊息字串中的一部分。你可以為MessageFormat定義一個模式,在其中你可以用佔位符來表示變化的部分,例如在下面的測試類中:

package cn.lz.life.util;

import java.text.MessageFormat;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Demo {
	protected static final Logger log = LoggerFactory.getLogger(Demo.class.getName());
	
	private MessageFormat format;

	public Demo(String placeholder) {
		super();
		this.format = new MessageFormat(placeholder);//包含佔位符的字串
	}
	
	public void getStrMsg(String ...strMsg) {
		log.info(format.format(strMsg));//格式化佔位符中的內容到目標字串
	}
	
	

}

注意format()方法的引數必須是陣列


package cn.lz.life.util;

public class Test {
	
	public static void main(String[] args) {
		Demo demo = new Demo("你好:{0}{1}!") ;//包含佔位符的目標字串

		String[] strs = {"某人!", "你是誰"};//佔位符中的內容


		demo.getStrMsg(strs);
	}

}




控制檯中列印:

17:31:38.388 [main] INFO cn.lz.life.util.Demo - 你好:某人!你是誰!

相關推薦

java定義使用{0}佔位功能MessageFormat

MessageFormat提供一種語言無關的方式來組裝訊息,它允許你在執行時刻用指定的引數來替換掉訊息字串中的一部分。你可以為MessageFormat定義一個模式,在其中你可以用佔位符來表示變化的部分,例如在下面的測試類中: package cn.lz.life.uti

java定義鎖實現synchronized功能

public class Test {private static long count = 0;private Lock lock = new Lock();private int m = 0;private int a = 0;private int b = 0;pub

Java定義註解

隨著 java註解 can 中文名 fault rev 相同 val source 前言 隨著springboot的流行,以前基於XML的spring配置用的越來越少,JavaConfig形式使用的越來越多,類似於: @Configuration

java定義封裝json以及和物件的轉換

首先建立服務端返回的資料型別物件: package com.studio.pojo.util; import org.codehaus.jackson.map.ObjectMapper; publ

Java定義物件使用Collections工具的Sort方法

Collections工具類中的sort方法有兩種形式: (1) sort(List<T> list) (2) sort(List<T> list, Comparator<? super T> c) 第一種方法中List型別的物件必須實現Comparable介面,此外,

java定義註解並通過反射獲取註解屬性值

直接上程式碼,註釋中有說明: 1、定義自定義註解類(類註解和欄位註解): package com.uno.ray;   import java.lang.annotation.Documented;   import java.lang

java定義時間減去某幾天返回減去的天數時間

<span style="font-size:18px;"><span style="white-space:pre"> </span>//減去多少天 String remindNo="5"; String dateTime="

關於Java定義包的建立

我在學習thinking in Java4 的時候,在建立自定義包的時候,碰到了很多錯誤,讓我鬱悶了幾天,通過在網上的資料搜尋,把包的建立過程給大家詳細列出來。 我們以thinking in Java4中的例子為例 建立兩個類Vector和List。將編譯後的Vector

Java定義異常的兩種處理方法

其中註釋掉的部分就是處理方法之一 class DivisorIsZeroException extends Exception { public DivisorIsZeroException(Str

Java定義異常

        今天覆習了一下Java中的異常處理,折騰了一下。都知道,在Java應用程式中,對異常的處理有兩種方式:處理異常和宣告異常。處理異常使用try-catch-finally捕獲異常,宣告異常則需要將其新增到方法名結束的位置(throws)。異常分為三種:可檢測異

java定義註解@interface在定義校驗器validator的使用

一,自定義註解中元註解1,保留位置:Retention    1.1 @Retention(RetentionPolicy.SOURCE) //僅存在於原始碼中,在class位元組碼檔案中不存在    1.2 @Retention(RetentionPolicy.CLASS)

java定義列舉enum對映到mysql資料庫欄位處理器handler

今年企業對Java開發的市場需求,你看懂了嗎? >>>   

Android開發定義表情併發送出去經典的傳送表情

本文例項講述了Android程式設計開發實現輸入(自定義表情包)QQ表情影象併發送出去別人收到並解析出來的方法。分享給大家供大家參考,原來QQ微信等傳送表情其實發送的都不是表情,而是一個富文字,收到訊息後再解析得來的,具體效果如下 : 表情傳送出去是這樣:   最近在

Qt5.9Creator定義訊號SIGNAL和在另一個中用該訊號觸發槽函式用法

本文章主要總結在Qt5.9Creator中自定義一個訊號,然後在另一個類裡面用該訊號觸發槽函式的例項。具體的例項是在類ClassA中自定義一個訊號Signal1,然後在MAinWindows類中用該訊號Signal1來觸發槽函式SlotFunction()的呼叫。注意:1.使

javaScript定義sort的比較函數,用於比較字串長度,數值大小

var cti lin family 字符串長度 tr1 個數 new fun var arr = [‘aa‘, 23, 1.2, ‘bb‘, ‘cc‘]; var len = arr.length; // for (var i = 0; i < len; i++)

JAVA如何定義定義註解

name 成員 ons javaoop override dep 擁有 ride 不能 了解註解 註解是Java1.5,JDK5.0引用的技術,與類,接口,枚舉處於同一層次 。它可以聲明在包、類、字段、方法、局部變量、方法參數等的前面,用來對這些元素進行說明,註釋 。 在J

vue2.0在頁面定義元件模組,以及頁面與元件之間的資料傳遞

1.在頁面上引入寫好的元件import UpdataPassword from './updataPassWord'       //updataPassWord為元件的name2.註冊元件components:{               //註冊元件  UpdataPa

ATS 5.3.0定義日誌格式檔案logs_xml.config解讀

緣起 近來因為公司專案需要,閱讀了一部分ATS logging system的原始碼實現,越發覺得logs_xml.config檔案的配置非常重要,而我目前只是實踐了一點它的皮毛。為此,根據自己的理解,翻譯了官網的這篇文件,以作備忘。 logs_xml.config檔案定

vue定義全域性按鈕修飾定義全域性指令

最近比較懶 不想打字~我就直接上個圖吧 這是自定義全域性按鈕修飾符:其實那個f2只是繫結的時候需要的名字 跟形參實際意義差不多 關鍵是後面的鍵盤碼 比如我打個114(f3的鍵盤碼) 我繫結f2 實際上我要按f3才能觸發這次事件 這是全域性自定義指令 比如下面

在gnome 3.0的linux定義快捷鍵

在gnome3.0下沒有直接設定快捷鍵的選項有以下幾種方式可以替代:可以按下ALT+F2,然後輸入命令即可開啟應用程式;或者按下win key或者Atl+F1然後輸入所要開啟的程式。(2011年4月14日)以下方法可以成功自定義gnome3的快捷鍵:======以自定義設定開啟終端terminal的快捷鍵【