草庐IT

string.format

全部标签

Java: `enum` 与 `String` 作为参数

我一直在阅读System库set和get方法的详细信息,但参数通常是字符串。自从包含enum以来,您是否认为使用String作为参数是不好的做法?更好的选择至少可能是publicfinalString,不是吗? 最佳答案 我认为枚举是比字符串更好的方法。它们是类型安全的,比较它们比比较字符串更快。作为Java1.5之前的替代方案,您可以使用JoshuaBloch在他的EffectiveJava一书中建议的类型安全枚举模式。对于类型安全的枚举,另请参阅http://www.javacamp.org/designPattern/enum

java - 证明 : why does java. lang.String.hashCode() 的实现与其文档相匹配?

java.lang.String.hashCode()的JDK文档famously说:ThehashcodeforaStringobjectiscomputedass[0]*31^(n-1)+s[1]*31^(n-2)+...+s[n-1]usingintarithmetic,wheres[i]isthe*i*thcharacterofthestring,nisthelengthofthestring,and^indicatesexponentiation.这个表达式的标准实现是:inthash=0;for(inti=0;i看着这个让我觉得我正在通过我的算法类(class)sleep。

Java String split ("|") 方法调用无法正常工作

这个问题在这里已经有了答案:SplittingaJavaStringbythepipesymbolusingsplit("|")(7个答案)关闭8年前。publicclassSplitStr{publicstaticvoidmain(String[]args){Stringstr1="This|is|My|Account|For|Java|";Stringstr2="This/is/My/Account/For/Java/";//String[]arr=str.split("|");for(Stringitem:str1.split("|")){System.out.print(ite

java - String.toUpperCase 可以去除重音或不去除重音

我必须对可能包含重音符号(“é”、“à”等)的名称应用toUpperCase。问题:使用JUnit,"é".toUpperCase转换为"E",重音被移除在我的应用程序(SpringRESTAPI)中,“é”.toUpperCase转换为“É”。输入来自Ember前端,但编码相同(UTF-8)JUnit测试和Spring应用程序使用相同的字符集(UTF-8),语言环境是法语。两者都在同一台机器上运行在OracleJava8上(Debian上的JenkinsCI,但我可以在我的计算机上重现此行为:Windows7)。我尝试指定语言环境toUpperCase(Locale.FRANCE),

Java 8 - 类型不匹配 : cannot convert from List<Serializable> to List<String>

我有一个字符串列表:Listlist=Arrays.asList("a1,a2","b1,b2");然后转换列表中的所有内容,如:"a1","a2","b1","b2"写了这个:Listss1=list.stream().flatMap(s->Stream.of(s.split(","))).collect(Collectors.toList());但我有一个错误:“类型不匹配:无法从List转换为List”。我处理的问题变成了这个:Listss2=list.stream().flatMap(s->Arrays.stream(s.split(","))).collect(Collect

java - 如何将 ArrayList<String> 添加到 JSON 数组 - 牢记类型安全

Eclipse显示类型安全警告,我尝试了几乎所有方法来消除它(当然抑制它是一种选择)但不幸的是我没有任何成功。你知道我必须如何更改我的代码才能不再有类型安全警告吗?或者@SuppressWarnings("unchecked")是唯一的方法吗?ArrayListarrayList=(ArrayList)Classname.getArrayList();JSONArrayobj=newJSONArray();obj.addAll(arrayList);在最后一行显示以下类型的安全警告:Typesafety:ThemethodaddAll(Collection)belongstothera

java - 为什么 ".concat(String)"比 "+"快这么多?

这个问题在这里已经有了答案:Stringconcatenation:concat()vs"+"operator(12个答案)关闭8年前。我编写的一些代码比较了用"string"+"string"连接字符串所需的时间:for(inti=0;i到"string".concat("string"):for(inti=0;i其中str=="string"。我得到的输出始终与此相似,尽管平均差异通常接近61纳秒:Stringstr2=str+str:118.57349468nanosecondsStringstr2=str.concat(str):52.36809985nanoseconds.c

java - 将 List<String> 转换为 List<Integer>(或任何扩展 Number 的类)

我想创建一个非常通用的实用方法来获取任何Collection并将其转换为从Number(Long、Double、Float、Integer等)扩展的用户可选类的Collection我想出了这段代码,它使用GoogleCollections来转换Collection并返回一个不可变列表。importjava.util.List;importcom.google.common.base.Function;importcom.google.common.collect.ImmutableList;importcom.google.common.collect.Lists;/***Takesa

java - 是否有简单的方法可以将 String.toLowerCase() 用于 9 种语言?

我需要处理下面列表中的9种语言。荷兰语英语法语德语意大利语葡萄牙语俄语西类牙语乌克兰语对于这些语言中的单词,我需要使用tolowercase()。我知道我需要使用Locale(country,language)作为函数的参数。那么,我是否必须为每种语言使用特定的语言环境,还是有更简单的方法来做到这一点? 最佳答案 您可以从ISO639语言代码构造一个Locale:Localerussian=newLocale("RU");有很好的默认语言环境供您使用,例如:Localeenglish=Locale.ENGLISH;Localefre

java - 更改 String(byte[]) 的默认编码

有没有办法改变String(byte[])构造函数使用的编码?在我自己的代码中,我使用String(byte[],String)来指定编码,但我使用的是无法更改的外部库。Stringsrc="withaccents:éà";byte[]bytes=src.getBytes("UTF-8");System.out.println("UTF-8decoded:"+newString(bytes,"UTF-8"));System.out.println("Defaultdecoded:"+newString(bytes));这个的输出是:UTF-8decoded:withaccents:éà