草庐IT

filter_format

全部标签

java - 我们可以使用 String.format() 来填充/前缀所需长度的字符吗?

java.lang.String.format(Stringstr,Stringstr1)能否用于添加特定字符的前缀。我可以对这样的数字执行此操作:intsendID=202022;StringusiSuffix=String.format("%032d",sendID);它生成一个长度为32的String并在左边填充0:000000000000000000000000000202022当sendID是String时如何实现同样的事情:StringsendID="AABB";我想要这样的输出:0000000000000000000000000000AABB

java - String 类型中的方法 format(String, Object[]) 不适用于参数 (...)

这是我的代码:inthoursFormat=1,minsFormat=2,secsFormat=3;StringtimeFormat=String.format("%02d:%02d:%02d",hoursFormat,minsFormat,secsFormat);这给出了一个编译错误:Unresolvedcompilationproblem:Themethodformat(String,Object[])inthetypeStringisnotapplicableforthearguments(String,int,int,int)为什么会出现此错误,我该如何解决?

java - 如何使用 String.format 将字符串居中?

publicclassDivers{publicstaticvoidmain(Stringargs[]){Stringformat="|%1$-10s|%2$-10s|%3$-20s|\n";System.out.format(format,"FirstName","Init.","LastName");System.out.format(format,"Real","","Gagnon");System.out.format(format,"John","D","Doe");Stringex[]={"John","F.","Kennedy"};System.out.format(St

java - Java 8 会在使用 Stream "filter"和 "collect"后创建一个新的 List 吗?

我有使用Java8的代码:Listlist=newArrayList();list.add(3);list.add(5);list.add(4);list.add(2);list.add(5);list=list.stream().filter(i->i>=3).collect(Collectors.toList());原始列表是[3,5,4,2,5]。经过“filter”和“collect”操作后,列表变为[3,5,4,5]。是否所有操作都在原始列表上执行并且不创建新列表?或者在“过滤”和“收集”操作之后,返回一个新创建的列表并忽略原始列表? 最佳答案

java - 是否值得清理 Filter 中的 ThreadLocals 来解决与线程池相关的问题?

简而言之——tomcat使用线程池,所以线程被重用。一些库使用ThreadLocal变量,但不清理它们(使用.remove()),因此实际上它们将“脏”线程返回到池中。Tomcat具有在关闭时检测这些东西并清理线程局部变量的新功能。但这意味着线程在整个执行过程中都是“脏”的。我能做的是实现一个Filter,并在请求完成后(线程返回到池中)立即清除所有ThreadLocal,使用codefromtomcat(那里的方法称为checkThreadLocalsForLeaks)。问题是,值得吗?两个优点:防止内存泄漏防止假设线程“新鲜”的库的不确定行为一个缺点:该解决方案使用反射,因此速度可

java - "%1$#"在 String.format (Java) 中使用时是什么意思?

语言是Java。%1$#在...中是什么意思staticStringpadright(Stringstr,intnum){returnString.format("%1$#"+num+"str",str);}在JavaAPI中,String.format()是这样使用的:publicstaticStringformat(Stringformat,Object...args)所以我认为%1$#是一个格式说明符。%[flags][width][.precision][argsize]typechar是模板。1是旗帜?$是宽度?#是精度吗?num是argsize?“str”是typechar

java - 甲骨文/JDBC : retrieving TIMESTAMP WITH TIME ZONE value in ISO 8601 format

关于该主题的某些部分已经说了很多(并写了SO),但不是全面、完整的方式,所以我们可以有一个“终极、全面”的解决方案供每个人使用。我有一个Oracle数据库,我在其中存储全局事件的日期+时间+时区,因此必须保留原始TZ,并根据要求交付给客户端。理想情况下,它可以通过使用标准ISO8601“T”格式很好地工作,这种格式可以使用“TIMESTAMPWITHTIMEZONE”列类型(“TSTZ”)很好地存储在Oracle中。类似'2013-01-02T03:04:05.060708+09:00'我需要做的就是从数据库中检索上述值并将其发送给客户端,无需任何操作。问题是Java缺乏对ISO860

java - 我可以在 String.format 中预编译格式字符串吗? (或者做任何其他事情来更快地格式化日志?)

众所周知thatString.format()performanceisterrible.我在我的(可能很常见的)典型案例中看到了很大的可能改进。我多次打印相同的数据结构。让我们想象一下像“x:%dy:%dz:%d”这样的结构。我预计String.format()的主要问题是它必须始终解析格式化字符串。我的问题是:是否有一些现成的类允许只读取一次格式化字符串,然后允许在填充可变参数时快速给出字符串?用法应如下所示:PreStringps=newPreString("x:%dy:%dz:%d");Strings;for(inti=0;i我知道这是可能的-以下是我的快速和肮脏的例子,它做我

java - 如何在 Java 中使用 String.format() 复制选项卡 "\t"?

我正在逐行打印数据,并希望它像表格一样组织起来。我最初使用的是firstName+","+lastName+"\t"+phoneNumber。但对于一些较大的名字,电话号码会被推错位我正在尝试使用String.format()来实现此效果。谁能告诉我要使用的格式语法?我尝试了String.format("%s,%s,%20s",firstName,lastName,phoneNumber),但这不是我想要的。我希望它看起来像这样:约翰·史密斯123456789鲍勃,麦迪逊123456789查尔斯·理查兹123456789编辑:这些答案似乎适用于System.out.println()。

java - {Filter}ing 是否比 Lucene 中的 {Query}ing 更快?

在阅读“LuceneinAction2ndedition”时,我看到了关于Filter的描述。可用于在Lucene中进行结果过滤的类。Lucene有很多过滤器重复Query类。例如,NumericRangeQuery和NumericRangeFilter.书上说NRF与NRQ完全相同但没有文件评分。这是否意味着如果我不需要评分或按文档字段值对文档进行排序,我应该更喜欢Filter结束Query从性能的角度来看? 最佳答案 我从UweSchindler那里得到了很好的回答,让我在这里重新发布。Ifyoudontcachefilters