Java Locale filter() 方法



描述

Java Locale filter(List<Locale.LanguageRange> priorityList, Collection<Locale> locales) 方法使用 RFC 4647 中定义的过滤机制返回匹配的 Locale 实例列表。这等效于当模式为 Locale.FilteringMode.AUTOSELECT_FILTERING 时,filter(List, Collection, FilteringMode) 。对给定区域设置进行此过滤操作可确保仅返回唯一的匹配区域设置。

声明

以下是 java.util.Locale.filter() 方法的声明

public static List<Locale> filter​(List<Locale.LanguageRange> priorityList, Collection<Locale> locales)

参数

priorityList − 用户的语言优先级列表,其中每个语言标签都根据优先级或权重以降序排序。

locales − 用于匹配的 Locale 实例。

返回值

此方法返回用于匹配语言标签的 Locale 实例列表,这些实例根据优先级或权重以降序排序,如果没有任何匹配项,则返回空列表。该列表是可修改的。

异常

NullPointerException − 如果 priorityList 或 locales 为 null

Java Locale filter(List<Locale.LanguageRange> priorityList, Collection<Locale> locales, Locale.FilteringMode mode) 方法

描述

Java Locale filter(List<Locale.LanguageRange> priorityList, Collection<Locale> locales, Locale.FilteringMode mode) 方法使用 RFC 4647 中定义的过滤机制返回匹配的 Locale 实例列表。对给定区域设置进行此过滤操作可确保仅返回唯一的匹配区域设置。

声明

以下是 java.util.Locale.filter() 方法的声明

public static List<Locale> filter​(List<Locale.LanguageRange> priorityList, Collection<Locale> locales, Locale.FilteringMode mode)

参数

priorityList − 用户的语言优先级列表,其中每个语言标签都根据优先级或权重以降序排序。

locales − 用于匹配的 Locale 实例。

mode − 过滤模式。

返回值

此方法返回用于匹配语言标签的 Locale 实例列表,这些实例根据优先级或权重以降序排序,如果没有任何匹配项,则返回空列表。该列表是可修改的。

异常

NullPointerException − 如果 priorityList 或 locales 为 null

IllegalArgumentException − 如果在指定 Locale.FilteringMode.REJECT_EXTENDED_RANGES 时,给定列表中包含一个或多个扩展语言范围

过滤区域设置列表示例

以下示例显示了 Java Locale filter(List<Locale.LanguageRange>, Collection<Locale>) 方法的用法。我们正在创建一个逗号分隔的区域设置字符串,并使用该字符串创建了一个区域设置首选项列表。现在创建了一个区域设置列表,并添加了一些区域设置。使用 filter() 方法过滤区域设置并打印结果。

package com.tutorialspoint;

import java.util.ArrayList;
import java.util.List;
import java.util.Locale;

public class LocaleDemo {
   public static void main(String[] args) {

      String tags = Locale.ENGLISH.toLanguageTag() 
         + ","
         + Locale.FRENCH.toLanguageTag();

      List<Locale.LanguageRange> priorityList = Locale.LanguageRange.parse(tags);
      List<Locale> localeList = new ArrayList<>();
      localeList.add(Locale.ENGLISH);
      localeList.add(Locale.JAPAN);

      List<Locale> filteredTags = Locale.filter(priorityList, localeList);

      System.out.println(filteredTags);
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

[en]

过滤区域设置列表示例

以下示例显示了 Java Locale filter(List<Locale.LanguageRange>, Collection<Locale>) 方法的用法。我们正在创建一个不同的逗号分隔的区域设置字符串,并使用该字符串创建了一个区域设置首选项列表。现在创建了一个区域设置列表,并添加了一些区域设置。使用 filter() 方法过滤区域设置并打印结果。

package com.tutorialspoint;

import java.util.ArrayList;
import java.util.List;
import java.util.Locale;

public class LocaleDemo {
   public static void main(String[] args) {

      String tags = Locale.ENGLISH.toLanguageTag() 
         + ","
         + Locale.FRENCH.toLanguageTag();

      List<Locale.LanguageRange> priorityList = Locale.LanguageRange.parse(tags);
      List<Locale> localeList = new ArrayList<>();
      localeList.add(Locale.ENGLISH);
      localeList.add(Locale.CANADA);
      localeList.add(Locale.FRENCH);

      List<Locale> filteredTags = Locale.filter(priorityList, localeList);

      System.out.println(filteredTags);
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

[en, en_CA, fr]

使用过滤模式过滤区域设置列表示例

以下示例显示了 Java Locale filter(List<Locale.LanguageRange>, Collection<Locale>,Locale.FilteringMode) 方法的用法。我们正在创建一个逗号分隔的区域设置字符串,并使用该字符串创建了一个区域设置首选项列表。现在创建了一个区域设置列表,并添加了一些区域设置。使用 filter() 方法过滤区域设置并打印结果。

package com.tutorialspoint;

import java.util.ArrayList;
import java.util.List;
import java.util.Locale;

public class LocaleDemo {
   public static void main(String[] args) {

      String tags = Locale.ENGLISH.toLanguageTag() 
         + ","
         + Locale.FRENCH.toLanguageTag();

      List<Locale.LanguageRange> priorityList = Locale.LanguageRange.parse(tags);
      List<Locale> localeList = new ArrayList<>();
      localeList.add(Locale.ENGLISH);
      localeList.add(Locale.JAPAN);

      List<Locale> filteredTags = Locale.filter(priorityList, localeList,Locale.FilteringMode.AUTOSELECT_FILTERING);

      System.out.println(filteredTags);
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

[en]
java_util_locale.htm
广告