我正在尝试阅读浏览器语言并从返回的长字符串中获取xx-XX(例如:en-US)的首次出现。
final String delimiter = "([a-z]{2})-([a-z]{2})";
final String language = (request.getHeader("Accept-Language")).toLowerCase();
String locale = "";
Pattern pattern = Pattern.compile(delimiter);
Matcher matcher = pattern.matcher(language);
if(matcher.find()) {
locale = matcher.group(0);
}
字符串locale
获得如下值:
de-DE,de;q=0.8,en-AU;q=0.6,en;q=0.4,en-US;q=0.2,en-GB;q=0.2,en-NZ;q=0.2,fr-FR;q=0.2,fr;q=0.2,en-CA;q=0.2
我想要获得第一个,在这种情况下'de-DE'。一些随机的时间它因我无法理解的原因而中断。应用程序本身中断。构建工作正常。我已经跟踪了这段代码(删除了页面上的其他内容)。仍不确定问题是什么。有什么提示吗?