Java JSP JSTL函数fn:拆分工作不正常
今天,我遇到一个问题,需要你的帮助来解决 我正在尝试使用JSTLJava JSP JSTL函数fn:拆分工作不正常,java,jsp,split,jstl,Java,Jsp,Split,Jstl,今天,我遇到一个问题,需要你的帮助来解决 我正在尝试使用JSTLfn:split函数拆分字符串,同样 <c:set var="stringArrayName" value="${fn:split(element, '~$')}" /> 仅应为2字符串部分,但它提供 abc pqr xyz 这里,总共有3个字符串部分返回,这是错误的 注意:-我在JSP顶部添加了。 任何帮助都非常感谢 JSTL split与Java split的工作方式不同您可以从源代码中检查差异: 所以很明显
fn:split
函数拆分字符串,同样
<c:set var="stringArrayName" value="${fn:split(element, '~$')}" />
仅应为2字符串部分,但它提供
abc
pqr
xyz
这里,总共有3个字符串部分返回,这是错误的
注意:-我在JSP顶部添加了。
任何帮助都非常感谢 JSTL split与Java split的工作方式不同您可以从源代码中检查差异: 所以很明显,
fn:split
使用StringTokenizer
...
StringTokenizer tok = new StringTokenizer(input, delimiters);
int count = tok.countTokens();
array = new String[count];
int i = 0;
while (tok.hasMoreTokens()) {
array[i++] = tok.nextToken();
}
...
不像java.lang.String.split
那样使用
它说:
为指定的字符串构造字符串标记器角色
delim参数中是分隔标记的分隔符。
分隔符本身不会被视为标记
fn:split究竟是如何工作的?
它在分隔符中的每个字符上拆分,在您的情况下,您有两个字符~
和$
,因此如果您的字符串是abc~$pqr$xyz
,它将按如下方式拆分:
abc~$pqr$xyz
^^ ^
第一次拆分:
abc
$pqr$xyz
第二部分:
abc
pqr$xyz
第三部分:
abc
pqr
xyz
解决方案 在Servlet中使用split而不是JSTL 例如:
String[] array = "abc~$pqr$xyz".split("~\\$");
谢谢@YCF\u L,它现在可以使用Pattern=Pattern.compile(“\\~\$”)工作了@vishalgajera您可以像这样使用split
String[]array=“abc~$pqr$xyz”。split(“~\\$”)代码>
abc
$pqr$xyz
abc
pqr$xyz
abc
pqr
xyz
String[] array = "abc~$pqr$xyz".split("~\\$");