草庐IT

java - String matches() 方法的奇怪行为

我遇到了一个关于String的matches(RegExp)方法的有趣问题。assertTrue("33CCFF".matches("[0-9A-Za-z]{6}"));assertTrue("CC33FF".matches("[0-9A-Za-z]{6}"));assertTrue("CC3355".matches("[0-9A-Za-z]{6}"));assertTrue("CC9955".matches("[0-9A-Za-z]{6}"));assertTrue("CC3366".matches("[0-9A-Za-z]{6}"));assertTrue("CC3965".mat

java - 带有条件运算符的奇怪 Java 行为。这是一个错误吗?

你能运行下面的命令并解释一下吗?Objecto=true?newInteger(1):newDouble(2.0);System.out.println(o);我发现这令人惊讶,因为有人会期望打印1而不是1.0 最佳答案 这一点也不奇怪,尽管它看起来像一个。该行为在JLS§15.25-ConditionalOperator中指定:Otherwise,ifthesecondandthirdoperandshavetypesthatareconvertible(§5.1.8)tonumerictypes,thenthereareseve

java - RunWith 和 ContextConfiguration 奇怪的行为

我有这个非常简单的类:@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations={"classpath*:/application-context-this-does-not-exist.xml"})publicclassHTMLSourceExtractorImplTest{@AutowiredApplicationContextcontext;@Testpublicvoidtest(){String[]beans=context.getBeanDefinitionNames();for(String

java - Java += 运算符的奇怪行为

谁能给我解释一下,Stringstr="Hello";str+=((char)97)+2;//str="Hello99";str=str+((char)97)+2;//str="Helloa2";+=运算符是否先计算右侧,然后将其与左侧连接? 最佳答案 区别与操作顺序有关。以下内容:str+=((char)97)+2;相当于:str=str+(((char)97)+2);另一方面,以下内容:str=str+((char)97)+2;相当于:str=(str+((char)97))+2;注意括号位置的不同。现在让我们考虑两种情况:1)

java - 奇怪的字符串数组声明语法

privatefinalString[]okFileExtensions=newString[]{"csv"};有人能解释一下为什么{}写在String数组声明之后吗?谢谢。 最佳答案 它是一个元素的数组。在本例中包含String"csv"。当写成声明的一部分时,可以写成更简洁的形式:privatefinalString[]okFileExtensions={"csv"};多元素数组在值之间使用逗号。根本不需要任何值。privatefinalString[]okFileExtensions={"csv","tsv"};private

Java getDate 0000/00/00 返回奇怪的值

为什么会这样?对于月份和日期,我认为Java假设以前有效的月份和日期,但我不明白为什么年份是2。SimpleDateFormatsdf=newSimpleDateFormat("yyyy/MM/dd");Dateresult=sdf.parse("0000/00/00");System.out.println(result.toString());输出是:SunNov3000:00:00GMT2 最佳答案 公历没有0年。第0年对应公元前1年(公元前,也称为公元前)。因为您为月份提供0,为日期提供0,所以它会回滚到上个月和上一年。即公

java - JTextPane/JEditorPane 和奇怪的文本问题

我正在创建一个简单的聊天程序,我想最终显示html链接。我现在的问题是我无法让文本按照我的意愿出现在用户名旁边。我希望用户名加粗,文本显示在其旁边,但由于某种原因,非加粗文本居中显示。如果我不加粗用户名,它工作正常。上面两个是我将名字加粗时的显示方式,中间是名称未加粗时的显示方式,底部显示超链接我希望它像中间两个一样显示,但名称加粗。这是代码,我做错了什么?请注意,我尝试用JEditorPane替换JTextPane并且发生了同样的事情。packagecom.test;importjava.awt.BorderLayout;importjava.awt.Color;importjava

java - Arrays.copyOfRange(byte[], int, int) 奇怪行为背后的逻辑是什么?

任何人都可以向我解释Arrays.copyOfRange(byte[],int,int))的奇怪行为背后的逻辑吗??我可以用简单的例子来说明我的意思:byte[]bytes=newbyte[]{1,1,1};Arrays.copyOfRange(bytes,3,4);//Returnssingleelement(0)arrayArrays.copyOfRange(bytes,4,5);//ThrowsArrayIndexOutOfBoundsException在这两种情况下,我都将范围复制到数组边界之外(即start>=array.length),因此错误条件至少对我来说很奇怪(如果是

javac 奇怪的语法 - 表达式的错误非法开始

我遇到了一个奇怪的错误,我认为这是一个错误。这是一个最小的案例,请不要评论代码的有用性:)classFoo{staticpublicintbar(){return42;}publicintbaz(){returntrue?42:(Foo.bar()>42?41:43);}}结果:err.java:7:illegalstartofexpressionFoo.bar()>42?41:43^我试过SUNSDKjavac1.6.0_13和1.6.0_21。当我要么使bar()非泛型(只是出于好奇,不是真正的选择)去掉第7行三元表达式两边的括号所以看起来如果e是一个表达式,那么写成(e)并不总是

java - 解析 PDF 时出现奇怪的空格

我需要解析PDF文档。我已经实现了解析器并使用了iText库,到目前为止它没有任何问题。但不,我需要解析另一个文档,该文档在单词中间出现非常奇怪的空格。例如我得到:VorbereitungaufdieMotorradsaison.VieleMotorradfahrer所有粗体字都应该连接起来,但PDF解析器以某种方式在字中添加了空格。但是当我将PDF中的内容复制并粘贴到文本文件中时,我没有得到这些空格。首先,我认为这是因为我正在使用的PDF解析库,但对于另一个库,我也遇到了完全相同的问题。我从解析的单词中查看了singleSpaceWidth,我注意到它在添加空格时总是在变化。我试图将