草庐IT

format_number

全部标签

java - 在 java 字符串中转义 % 符号以应用 String.format

在我的项目(Java/Play框架)中,我有一个错误处理路由,它检查来自Web服务的响应,如果响应是错误代码,我们会显示相应的错误消息,说明用户输入的问题,该服务检查用户输入的有效性。当用户输入一个%符号时,这个逻辑就中断了,因为错误显示逻辑使用了String.format(message,messageArgs);它插入messageArgs并在它找到%的地方引入消息字符串,如果messageArgs也包含%,我会得到一个异常。在显示消息之前,我需要清理、转义或以其他方式从用户输入中删除%。消息:请求的电子邮件地址%s无效messageArgs:orlybg%@gmail.com关于

java - 为什么 NumberFormat.format 抛出 NullPointerException?

我刚刚发现了一个非常奇怪的NullPointerException。首先,我创建了一个像这样的NumberFormat(注意默认的Locale是德国,我不知道这是否有帮助):NumberFormatangleFormat=NumberFormat.getNumberInstance(Locale.UK);angleFormat.setMaximumFractionDigits(5);angleFormat.setMinimumFractionDigits(0);然后,我尝试用它格式化一个double。这是通过Lambda创建的新线程完成的,而angleFormat是在包含Lambda的

java - 使用连接运算符 (+) 或 String.format() 方法的字符串连接

哪个更适合用于字符串连接如果我想从一堆字符串变量(例如str1和str2)构建一个字符串,哪一个会更好???字符串拼接运算符Stringstr="ThisString1"+str1+"与Sting2"+str2合并;字符串格式化方法Stringstr=String.format("ThisString1%smergedwithSting2%s",str1,str2);我认为第二个会更好,因为第一个会因创建大量字符串而受到影响。如果我错了请纠正我?并就此提供反馈 最佳答案 第一个实际上不会创建任何额外的字符串。它将被编译成类似这样的东

java - 为什么 <? extends Number> 不适用于 Integer?

为什么PredicateisGreaterThanZero=num->num.intValue()>0;为工作isGreaterThanZero.test(newInteger(2));而不是PredicateisGreaterThanZero=num->num.intValue()>0;我认为它们是相同的,因为Integeris-aNumber 最佳答案 当你声明PredicateisGreaterThanZero,你告诉编译器isGreaterThanZero是Predicate由Number的一些未知子类型参数化.就编译器所知

Java 8 Lambda 将 Number[][] 转换为 double[][]

Number[][]intArray=newInteger[][]{{1,2,3},{4,5,6},{7,8,9}};double[][]doubleArray=Arrays.stream(intArray).forEach(pArray->Arrays.stream(pArray).mapToDouble(d->d.doubleValue()).toArray()).toArray();我想将Number[][]转换为double[][]。上面的lambda不起作用,外部的toArray不编译。Arrays.stream(intArray):返回Integer[]的流forEach:

java - 性能问题 : "java.text.MessageFormat.format" vs "StringBuilder"

我想知道比较MessageFormat或StringBuilder类。举个例子,我有一个字符串。对于性能明智的哪一个是快速的:java.text.MessageFormat.format或StringBuilder("Test").append("Hello")?Stringtxt=java.text.MessageFormat.format("Test{0}","Hello")Stringtxt1=newStringBuilder("Test").append("Hello")我只想知道在最佳实践或性能方面使用哪个 最佳答案 自己

error Error: write EPROTO...SSL routines:ssl3_read_bytes:tlsv1 alert internal...SSL alert number 80

一、问题描述今天前端小伙伴反馈,有个项目编译失败,报错如下:+node-vv16.17.0+npm-v8.15.0+npminstall-gyarn-registry=https://registry.npm.taobao.orgchanged1packagein1m+yarn-v1.22.21+yarninstallyarninstallv1.22.21[1/4]Resolvingpackages...errorError:writeEPROTO139798789396352:error:14094438:SSLroutines:ssl3_read_bytes:tlsv1alertinter

java - Java 的 String.format 方法中的可变宽度

我正在做一个需要显示文本树的项目。我正在尝试使用Java的String.format方法来简化格式化过程,但在尝试应用可变宽度时遇到了麻烦。当前我有一个称为深度的变量(一个整数)。我尝试执行以下操作:String.format("%"+depth+"s","")+getOriginalText()+"\n";但是我得到以下错误。java.util.FormatFlagsConversionMismatchException:Conversion=s,Flags=0关于如何执行此操作的任何建议,或者我应该满足于循环?感谢您的帮助! 最佳答案

java - GKE 和 Stackdriver : Java logback logging format?

我有一个在Kubernetes上的docker镜像中运行Java的项目。日志由fluentd代理自动提取并最终进入Stackdriver。但是,日志的格式是错误的:多行日志在Stackdriver中被放入单独的日志行,并且所有日志都具有“INFO”日志级别,即使它们实际上是警告或错误。我一直在搜索有关如何配置logback以输出正确格式以使其正常工作的信息,但我在googleStackdriver或GKE文档中找不到此类指南。我的猜测是我应该输出某种形式的JSON,但我在哪里可以找到有关格式的信息,甚至可以找到有关如何正确设置此管道的指南。谢谢! 最佳答案

java - Numbers 上不需要的自动装箱魔法

下面的程序分别打印'false'和'true':Numbern=true?newLong(1):newDouble(2.0);System.out.println(ninstanceofLong);System.out.println(ninstanceofDouble);所以它不会是Long而是Double。但是,它在普通类上按预期工作:拥有classB{}classD1extendsB{}classD2extendsB{}这将打印“真”:Bb=true?newD1():newD2();System.out.println(binstanceofD1);这意味着它与上面的示例不同。我