问题标签 [apache-commons-lang]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
646 浏览

java - 使用 Java - substringBetween() 函数基于第二次出现提取子字符串

我有以下字符串“如果这是好的,如果那是坏的”。要求是从主字符串中提取字符串“that”。

使用

在这种情况下,您能否帮助提取所需的字符串。如果使用函数 substringBetween() 无法做到这一点,是否有任何替代字符串函数可以实现这一点?

0 投票
1 回答
1144 浏览

java - 使用 NumberUtils.INTEGER_ONE 和其他此类实用程序的好处

在 java 中为了比较 if 语句,我写了

if (x == 1)

并在代码审查中获得了使用 NumberUtils.INTEGER_ONE 而不是 1 的评论。我想知道它实际上为代码添加了什么好处。

0 投票
1 回答
921 浏览

java - Java 9 JRE 在 jar 执行时导致 java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils

我在 Eclipse Oxygen.1a(操作系统:Windows 10 Home edition 64-bit)上创建了一个 jar 文件。我项目的 JRE 是 jre1.8.0_152(64 位版本)。当我使用 Java 8 JRE 运行我的 jar 文件时,程序运行良好,但是当我使用 Java 9 JRE 时,我收到以下错误:

当我执行时发生此错误java -jar myjarfile.jar使用 Java 9 JRE。

我嵌入了最新版本的Apache Commons Lang(在项目库中添加了commons-lang3-3.7.jar)并使用了最新的 Java 9 Runtime (jre9.0.1)。Apache 页面声明需要 Java 7.0+。
Java 9 和 Apache Commons 库之间是否存在不兼容问题?有什么办法可以解决这个问题?

更新
命令行包含(调试视图,右键单击并单击属性)

通过使用 Eclipse 导出 Runnable JAR 创建的 Jar 文件,使用以下设置:
可运行的 JAR 导出设置

第二次更新:我在另一个 Windows 10 pro 64 位系统和带有 Java 9 的 Ubuntu 16.04.3 LTS 上测试了我的 JAR,并且遇到了同样的问题。

0 投票
0 回答
325 浏览

java - 如何在 StrSubstitutor 中使 templateString 动态化

我正在寻找类似于以下内容的输出:

任何建议都会有所帮助。

0 投票
4 回答
71430 浏览

java - 为什么不推荐使用 org.apache.common.lang3 StringEscapeUtils?

我找不到任何解释为什么 StringEscapeUtils 从 Apache Lang3 v3.7 中被弃用。

https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringEscapeUtils.html

我们现在应该使用什么来进行 HTML 转义/取消转义

0 投票
1 回答
347 浏览

java - 为什么 ToStringBuilder 工作不一致?

在下面的代码中,为什么包含的两行会System.out.println(person); 产生不同的输出?第二行间接调用Job.toString产生字符串的方法"Manager",但第一行神秘地不产生Job@28f67ac7。在我看来,两者之间的界限person.put("a", "b");似乎并没有什么不同。

代码:

安慰:

0 投票
1 回答
2393 浏览

java - 如何为非法反射访问警告抛出异常?

如何为非法反射访问警告抛出异常?例如,考虑以下代码:

此代码向 System.err 打印以下警告:

Boolean.TRUE 是一个非常简单的值,我真的不需要 ReflectionToStringBuilder。但更复杂的类型(如 HashMap)会输出相同的警告。我选择 Boolean.TRUE 是为了简化这个例子。

当我搜索此警告消息时,我发现建议将其报告给包维护者、避免警告或完全禁用它(JDK9:发生了非法反射访问操作。org.python.core.PySystemState)。

我想为警告抛出一个异常,以便获得非法访问发生位置的堆栈跟踪。然后我可以更改代码以避免导致警告的非法访问。我还想做一个单元测试来检查将来的警告。

我尝试根据 StackOverflow 问题JUnit test for System.out.println()测试打印到 System.err 。这涉及将 System.err 设置为 ByteArrayOutputStream,然后检查内容。但不幸的是,根据如何在没有 JVM 参数的情况下在 java 9 中隐藏警告“非法反射访问”?,IllegalAccessLogger 在 JVM 引导期间获取对 System.err 的引用,然后我才能更改它。

我也尝试关闭 System.err,但似乎打印到关闭的流会默默地失败,而不是抛出异常。请注意,以下代码的输出不包含字符串“err-2”:

代码:

输出:

0 投票
2 回答
853 浏览

java - 使用反射输出对象中变量的所有值

我想输出对象中变量的所有值。

目前我正在使用ReflectionToStringBuilder,但问题是它[,]在输出集合时包含字符。

这是一个例子。

输出

我尝试定义自己的ToStringStyle,但似乎没有任何选项可以删除方括号和逗号。

输出

我需要的是只获取没有添加字符的值。

这怎么可能实现?

0 投票
1 回答
1291 浏览

stringbuilder - Apache Common 的 StrBuilder 和 Java 的 StringBuilder 有什么区别?

StrBuilderApache Commons 与 Java StringBuilder有何不同?

在 Apache Commons 中,我看到StrBuilder已弃用。

我可以改用JavaStringBuilder吗?

0 投票
0 回答
352 浏览

java - StringEscapeUtils.escapeHtml/escapeHtml4 commons-lang 和 commons-lang3 不一致

单元测试显示 StringEscapeUtils.escapeHtml/escapeHtml4 不会产生相同的结果。

尝试将 commons-lang(2.6) 升级到 commons-lang3(3.9) 并在 escapeHtml/escapeHtml4 方法中发现奇偶校验不匹配。

我本来希望 commons-lang3 StringEscapeUtils.escapeHtml4() 产生与 commons-lang StringEscapeUtils.escapeHtml() 相同的结果。当然,这个测试是在整个 unicode 范围内,但仍然......

这些字符不再在 HTML4 中转义了吗?这不取决于您的编码吗?有没有办法强制 commons-lang3 在这方面表现得像 commons-lang?