Tabnine Logo
MessageFormat
Code IndexAdd Tabnine to your IDE (free)

How to use
MessageFormat
in
java.text

Best Java code snippets using java.text.MessageFormat (Showing top 20 results out of 30,924)

Refine searchRefine arrow

  • ResourceBundle
  • DefinitionException
  • Locale
origin: lets-blade/blade

  public String format(String key,String ... params) {
    return MessageFormat.format(resourceBundle.getString(key),params);
  }
}
origin: checkstyle/checkstyle

/**
 * Returns the formatted custom message if one is configured.
 * @return the formatted custom message or {@code null}
 *          if there is no custom message
 */
private String getCustomMessage() {
  String message = null;
  if (customMessage != null) {
    final MessageFormat formatter = new MessageFormat(customMessage, Locale.ROOT);
    message = formatter.format(args);
  }
  return message;
}
origin: chanjarster/weixin-java-tools

/**
 * Get a string from the underlying resource bundle and format
 * it with the given set of arguments.
 *
 * @param key
 * @param args
 */
public String getString(final String key, final Object... args) {
  String value = getString(key);
  if (value == null) {
    value = key;
  }
  MessageFormat mf = new MessageFormat(value);
  mf.setLocale(locale);
  return mf.format(args, new StringBuffer(), null).toString();
}
origin: languagetool-org/languagetool

/**
 * Translate a text string based on our i18n files.
 * @since 3.1
 */
public static String i18n(ResourceBundle messages, String key, Object... messageArguments) {
 MessageFormat formatter = new MessageFormat("");
 formatter.applyPattern(messages.getString(key).replaceAll("'", "''"));
 return formatter.format(messageArguments);
}
origin: org.apache.commons/commons-lang3

/**
 * Replace MessageFormat(String, Locale) constructor (not available until JDK 1.4).
 * @param pattern string
 * @param locale Locale
 * @return MessageFormat
 */
private MessageFormat createMessageFormat(final String pattern, final Locale locale) {
  final MessageFormat result = new MessageFormat(pattern);
  if (locale != null) {
    result.setLocale(locale);
    result.applyPattern(pattern);
  }
  return result;
}
origin: checkstyle/checkstyle

/**
 * Gets the check message 'as is' from appropriate 'messages.properties'
 * file.
 *
 * @param messageBundle the bundle name.
 * @param messageKey the key of message in 'messages.properties' file.
 * @param arguments the arguments of message in 'messages.properties' file.
 * @return The message of the check with the arguments applied.
 */
private static String internalGetCheckMessage(
    String messageBundle, String messageKey, Object... arguments) {
  final ResourceBundle resourceBundle = ResourceBundle.getBundle(
      messageBundle,
      Locale.getDefault(),
      Thread.currentThread().getContextClassLoader(),
      new LocalizedMessage.Utf8Control());
  final String pattern = resourceBundle.getString(messageKey);
  final MessageFormat formatter = new MessageFormat(pattern, Locale.ROOT);
  return formatter.format(arguments);
}
origin: javax.xml.bind/jaxb-api

/** Loads a string resource and formats it with specified arguments. */
static String format( String property, Object[] args ) {
  String text = ResourceBundle.getBundle(Messages.class.getName()).getString(property);
  return MessageFormat.format(text,args);
}

origin: javax.el/javax.el-api

locale = Locale.getDefault();
ResourceBundle rb = null;
if (null == (rb = (ResourceBundle)
    threadMap.get(locale.toString()))) {
  rb = ResourceBundle.getBundle("javax.el.PrivateMessages",
                 locale);
  threadMap.put(locale.toString(), rb);
    result = rb.getString(messageId);
    if (null != params) {
      result = MessageFormat.format(result, params);
origin: org.jboss.weld.se/weld-se

@Override
public final DefinitionException initializerCannotBeDisposalMethod(final Object param1, final Object stackElement) {
  final DefinitionException result = new DefinitionException(java.text.MessageFormat.format(initializerCannotBeDisposalMethod$str(), param1, stackElement));
  final StackTraceElement[] st = result.getStackTrace();
  result.setStackTrace(Arrays.copyOfRange(st, 1, st.length));
  return result;
}
private static final String qualifierOnFinalField = "WELD-000810: Cannot place qualifiers on final fields:  {0}";
origin: spring-projects/spring-framework

  public String formatMessage(Object... inserts) {
    return MessageFormat.format(this.message, inserts);
  }
}
origin: igniterealtime/Openfire

value = bundle.getString(key);
  MessageFormat messageFormat = new MessageFormat("");
  messageFormat.setLocale(bundle.getLocale());
  messageFormat.applyPattern(value);
  try {
    Format[] formats = messageFormat.getFormats();
    for (int i = 0; i < formats.length; i++) {
      Format format = formats[i];
    value = messageFormat.format(arguments.toArray());
    + " in locale " + locale.toString());
value = "";
origin: org.freemarker/freemarker

  format = new MessageFormat(((ResourceBundle) object).getString(key));
  format.setLocale(getBundle().getLocale());
  formats.put(key, format);
return format.format(params);
origin: org.jboss.jbossas/jboss-as-profileservice

public DeploymentManagerImpl()
{
 currentLocale = Locale.getDefault();
 formatter.setLocale(currentLocale);
 i18n = ResourceBundle.getBundle(BUNDLE_NAME, currentLocale);
}
origin: robovm/robovm

  buffer.append(argumentNumbers[i]);
  buffer.append('}');
  handleArgumentField(begin, buffer.length(), argumentNumbers[i], position, fields);
  continue;
  } else {
    buffer.append(arg);
    handleArgumentField(begin, buffer.length(), argumentNumbers[i], position, fields);
    continue;
  MessageFormat mf = new MessageFormat(result);
  mf.setLocale(locale);
  mf.format(objects, buffer, passedField);
  handleArgumentField(begin, buffer.length(), argumentNumbers[i], position, fields);
  handleFormat(format, arg, begin, fields);
} else {
  format.format(arg, buffer, passedField);
  handleArgumentField(begin, buffer.length(), argumentNumbers[i], position, fields);
  handleFormat(format, arg, begin, fields);
origin: languagetool-org/languagetool

FalseFriendRuleHandler(Language textLanguage, Language motherTongue) {
 messages = ResourceBundle.getBundle(
   JLanguageTool.MESSAGE_BUNDLE, motherTongue.getLocale());
 formatter = new MessageFormat("");
 formatter.setLocale(motherTongue.getLocale());
 this.textLanguage = textLanguage;
 this.motherTongue = motherTongue;
}
origin: spring-projects/spring-framework

/**
 * Create a MessageFormat for the given message and Locale.
 * @param msg the message to create a MessageFormat for
 * @param locale the Locale to create a MessageFormat for
 * @return the MessageFormat instance
 */
protected MessageFormat createMessageFormat(String msg, Locale locale) {
  return new MessageFormat(msg, locale);
}
origin: javalite/activejdbc

/**
 * Looks for a localized property/message in <code>activejdbc_messages</code> bundle.
 *
 * @param key key of the property.
 * @param locale locale of a bundle, or null for default locale
 * @param params list of parameters for a message. The order of parameters in this list will correspond to the
 * numeric order in the parameters listed in the message and has nothing to do with a physical order. This means
 * that the first parameter in the list will correspond to <code>{0}</code>, second to <code>{1}</code> and so on.
 * @return localized  message merged with parameters (if provided), or key if message not found.
 */
public static String message(String key, Locale locale, Object... params) {
  String pattern;
  try {
    pattern = ResourceBundle.getBundle(BUNDLE, locale == null ? Locale.getDefault() : locale).getString(key);
  } catch (MissingResourceException e) {
    pattern = key;
  }
  return empty(params) ? pattern : new MessageFormat(pattern).format(params);
}
origin: javax.xml.bind/jaxb-api

/** Loads a string resource and formats it with specified arguments. */
static String format( String property, Object[] args ) {
  String text = ResourceBundle.getBundle(Messages.class.getName()).getString(property);
  return MessageFormat.format(text,args);
}

origin: javax.el/el-api

locale = Locale.getDefault();
ResourceBundle rb = null;
if (null == (rb = (ResourceBundle)
threadMap.get(locale.toString()))) {
  rb = ResourceBundle.getBundle("javax.el.PrivateMessages",
                 locale);
  threadMap.put(locale.toString(), rb);
    result = rb.getString(messageId);
    if (null != params) {
      result = MessageFormat.format(result, params);
origin: org.jboss.weld.se/weld-se

@Override
public final DefinitionException qualifierOnFinalField(final Object param1) {
  final DefinitionException result = new DefinitionException(java.text.MessageFormat.format(qualifierOnFinalField$str(), param1));
  final StackTraceElement[] st = result.getStackTrace();
  result.setStackTrace(Arrays.copyOfRange(st, 1, st.length));
  return result;
}
private static final String ambiguousConstructor = "WELD-000812: Cannot determine constructor to use for {0}. Possible constructors {1}";
java.textMessageFormat

Javadoc

Produces concatenated messages in language-neutral way. New code should probably use java.util.Formatter instead.

MessageFormat takes a set of objects, formats them and then inserts the formatted strings into the pattern at the appropriate places.

Note: MessageFormat differs from the other Format classes in that you create a MessageFormatobject with one of its constructors (not with a getInstancestyle factory method). The factory methods aren't necessary because MessageFormat itself doesn't implement locale-specific behavior. Any locale-specific behavior is defined by the pattern that you provide as well as the subformats used for inserted arguments.

Patterns and their interpretation

MessageFormat uses patterns of the following form:
 
MessageFormatPattern: 
String 
MessageFormatPattern FormatElement String 
FormatElement: 
{ ArgumentIndex } 
{ ArgumentIndex , FormatType } 
{ ArgumentIndex , FormatType , FormatStyle } 
FormatType: one of  
number date time choice 
FormatStyle: 
short 
medium 
long 
full 
integer 
currency 
percent 
SubformatPattern 
String: 
StringPart<sub>opt</sub> 
String StringPart 
StringPart: 
'' 
' QuotedString ' 
UnquotedString 
SubformatPattern: 
SubformatPatternPart<sub>opt</sub> 
SubformatPattern SubformatPatternPart 
SubFormatPatternPart: 
' QuotedPattern ' 
UnquotedPattern 

Within a String, "''" represents a single quote. A QuotedString can contain arbitrary characters except single quotes; the surrounding single quotes are removed. An UnquotedString can contain arbitrary characters except single quotes and left curly brackets. Thus, a string that should result in the formatted message "'{0}'" can be written as "'''{'0}''"} or "'''{0}'''"}.

Within a SubformatPattern, different rules apply. A QuotedPattern can contain arbitrary characters except single quotes, but the surrounding single quotes are not removed, so they may be interpreted by the subformat. For example, "{1,number,$'#',##}"} will produce a number format with the hash-sign quoted, with a result such as: "$#31,45". An UnquotedPattern can contain arbitrary characters except single quotes, but curly braces within it must be balanced. For example, "ab {0} de"} and "ab '' de"} are valid subformat patterns, but "ab {0'}' de"} and "ab de"} are not. Warning: The rules for using quotes within message format patterns unfortunately have shown to be somewhat confusing. In particular, it isn't always obvious to localizers whether single quotes need to be doubled or not. Make sure to inform localizers about the rules, and tell them (for example, by using comments in resource bundle source files) which strings will be processed by MessageFormat. Note that localizers may need to use single quotes in translated strings where the original version doesn't have them.
Note also that the simplest way to avoid the problem is to use the real apostrophe (single quote) character \u2019 (') for human-readable text, and to use the ASCII apostrophe (\u0027 ' ) only in program syntax, like quoting in MessageFormat. See the annotations for U+0027 Apostrophe in The Unicode Standard.

The ArgumentIndex value is a non-negative integer written using the digits '0' through '9', and represents an index into the arguments array passed to the format methods or the result array returned by the parse methods.

The FormatType and FormatStyle values are used to create a Format instance for the format element. The following table shows how the values map to Format instances. Combinations not shown in the table are illegal. A SubformatPattern must be a valid pattern string for the Format subclass used.

Format Type Format Style Subformat Created
(none) null
number (none) NumberFormat.getInstance(getLocale())
integer NumberFormat.getIntegerInstance(getLocale())
currency NumberFormat.getCurrencyInstance(getLocale())
percent NumberFormat.getPercentInstance(getLocale())
SubformatPattern new DecimalFormat(subformatPattern, new DecimalFormatSymbols(getLocale()))
date (none) DateFormat.getDateInstance(DateFormat.DEFAULT, getLocale())
short DateFormat.getDateInstance(DateFormat.SHORT, getLocale())
medium DateFormat.getDateInstance(DateFormat.DEFAULT, getLocale())
long DateFormat.getDateInstance(DateFormat.LONG, getLocale())
full DateFormat.getDateInstance(DateFormat.FULL, getLocale())
SubformatPattern new SimpleDateFormat(subformatPattern, getLocale())
time (none) DateFormat.getTimeInstance(DateFormat.DEFAULT, getLocale())
short DateFormat.getTimeInstance(DateFormat.SHORT, getLocale())
medium DateFormat.getTimeInstance(DateFormat.DEFAULT, getLocale())
long DateFormat.getTimeInstance(DateFormat.LONG, getLocale())
full DateFormat.getTimeInstance(DateFormat.FULL, getLocale())
SubformatPattern new SimpleDateFormat(subformatPattern, getLocale())
choice SubformatPattern new ChoiceFormat(subformatPattern)

Usage Information

Here are some examples of usage:

 
Object[] arguments = { 
Integer.valueOf(7), new Date(System.currentTimeMillis()), 
"a disturbance in the Force"}; 
String result = MessageFormat.format( 
"At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.", 
arguments); 
 
Output: 
 
At 12:30 PM on Jul 3, 2053, there was a disturbance in the Force on planet 7. 

Typically, the message format will come from resources, and the arguments will be dynamically set at runtime.

Example 2:

 
Object[] testArgs = {Long.valueOf(3), "MyDisk"}; 
MessageFormat form = new MessageFormat("The disk \"{1}\" contains {0} file(s)."); 
System.out.println(form.format(testArgs)); 
 
Output with different testArgs: 
 
The disk "MyDisk" contains 0 file(s). 
The disk "MyDisk" contains 1 file(s). 
The disk "MyDisk" contains 1,273 file(s). 

For more sophisticated patterns, you can use a ChoiceFormat to get output such as:

 
MessageFormat form = new MessageFormat("The disk \"{1}\" contains {0}."); 
double[] filelimits = {0,1,2}; 
String[] filepart = {"no files","one file","{0,number} files"}; 
ChoiceFormat fileform = new ChoiceFormat(filelimits, filepart); 
form.setFormatByArgumentIndex(0, fileform); 
Object[] testArgs = {Long.valueOf(12373), "MyDisk"}; 
System.out.println(form.format(testArgs)); 
 
Output (with different testArgs): 
 
The disk "MyDisk" contains no files. 
The disk "MyDisk" contains one file. 
The disk "MyDisk" contains 1,273 files. 
You can either do this programmatically, as in the above example, or by using a pattern (see ChoiceFormat for more information) as in:
 
form.applyPattern("There {0,choice,0#are no files|1#is one file|1<are {0,number,integer} files}."); 

Note: As we see above, the string produced by a ChoiceFormat in MessageFormat is treated specially; occurances of '{' are used to indicated subformats, and cause recursion. If you create both a MessageFormat and ChoiceFormat programmatically (instead of using the string patterns), then be careful not to produce a format that recurses on itself, which will cause an infinite loop.

When a single argument is parsed more than once in the string, the last match will be the final result of the parsing. For example:

 
MessageFormat mf = new MessageFormat("{0,number,#.##}, {0,number,#.#}"); 
Object[] objs = {new Double(3.1415)}; 
String result = mf.format(objs); 
// result now equals "3.14, 3.1" 
objs = null; 
objs = mf.parse(result, new ParsePosition(0)); 
// objs now equals {new Double(3.1)} 

Likewise, parsing with a MessageFormat object using patterns containing multiple occurrences of the same argument would return the last match. For example:

 
MessageFormat mf = new MessageFormat("{0}, {0}, {0}"); 
String forParsing = "x, y, z"; 
Object[] objs = mf.parse(forParsing, new ParsePosition(0)); 
// result now equals {new String("z")} 

Synchronization

Message formats are not synchronized. It is recommended to create separate format instances for each thread. If multiple threads access a format concurrently, it must be synchronized externally.

Most used methods

  • format
    Formats an array of objects and appends the MessageFormat's pattern, with format elements replaced b
  • <init>
    Constructs a MessageFormat for the specified locale and pattern. The constructor first sets the loca
  • setLocale
    Sets the locale to be used when creating or comparing subformats. This affects subsequent calls to t
  • applyPattern
    Sets the pattern used by this message format. The method parses the pattern and creates a list of su
  • parse
    Parses the string.Caveats: The parse may fail in a number of circumstances. For example: * If one of
  • toPattern
    Returns a pattern representing the current state of the message format. The string is constructed fr
  • getFormats
    Gets the formats used for the format elements in the previously set pattern string. The order of for
  • setFormats
    Sets the formats to use for the format elements in the previously set pattern string. The order of f
  • getFormatsByArgumentIndex
    Gets the formats used for the values passed intoformat methods or returned from parse methods. The
  • equals
    Equality comparison between two message format objects
  • hashCode
    Generates a hash code for the message format object.
  • setFormat
    Sets the format to use for the format element with the given format element index within the previou
  • hashCode,
  • setFormat,
  • appendQuoted,
  • clone,
  • decodeDecimalFormat,
  • decodeSimpleDateFormat,
  • formatImpl,
  • handleArgumentField,
  • handleFormat,
  • match

Popular in Java

  • Running tasks concurrently on multiple threads
  • getSupportFragmentManager (FragmentActivity)
  • orElseThrow (Optional)
    Return the contained value, if present, otherwise throw an exception to be created by the provided s
  • compareTo (BigDecimal)
  • Point (java.awt)
    A point representing a location in (x,y) coordinate space, specified in integer precision.
  • SocketTimeoutException (java.net)
    This exception is thrown when a timeout expired on a socket read or accept operation.
  • TimeZone (java.util)
    TimeZone represents a time zone offset, and also figures out daylight savings. Typically, you get a
  • Collectors (java.util.stream)
  • ZipFile (java.util.zip)
    This class provides random read access to a zip file. You pay more to read the zip file's central di
  • DateTimeFormat (org.joda.time.format)
    Factory that creates instances of DateTimeFormatter from patterns and styles. Datetime formatting i
  • Top Vim plugins
Tabnine Logo
  • Products

    Search for Java codeSearch for JavaScript code
  • IDE Plugins

    IntelliJ IDEAWebStormVisual StudioAndroid StudioEclipseVisual Studio CodePyCharmSublime TextPhpStormVimGoLandRubyMineEmacsJupyter NotebookJupyter LabRiderDataGripAppCode
  • Company

    About UsContact UsCareers
  • Resources

    FAQBlogTabnine AcademyTerms of usePrivacy policyJava Code IndexJavascript Code Index
Get Tabnine for your IDE now