我想用分隔符空格分割一个字符串。但它应该智能地处理带引号的字符串。例如。对于像这样的字符串"JohnSmith"TedBarry它应该返回三个字符串JohnSmith、Ted和Barry。 最佳答案 在弄乱它之后,您可以为此使用Regex。在以下位置运行等效的“全部匹配”:((?Java示例:importjava.util.regex.Pattern;importjava.util.regex.Matcher;publicclassTest{publicstaticvoidmain(String[]args){StringsomeS
我有文本中的数据:WS6WH11WD6WC8Wn9NS7NH2ND6NC5NN4ES6EH11ED6EC8En9我想将它们分为字符串数组,例如:string[0]array="WS6WH11WD6WC8WN9";string[0]array="NS7NH2ND6NC5";string[0]array="NN4ES6EH11ED6EC8EN9";我一直在做:using(StreamReaderreader=newStreamReader(uploadedFile.InputStream)){stringread=reader.ReadToEnd();string[]Array=Regex.Spl
当我尝试使用分隔符“|”拆分字符串时,它似乎拆分了每个字符。这是导致问题的我的线路:Stringout=myString.split("|"); 最佳答案 在正则表达式中,|是用于alternation的保留字符.你需要逃避它:Stringout=string.split("\\|");请注意,我们使用了两个反斜杠。这是因为Java字符串中第一个转义了第二个,所以传递给正则表达式引擎的字符串是\|。 关于Java-字符串按每个字符拆分,我们在StackOverflow上找到一个类似的问题
我想从给定的字符串中找到所有数字(所有数字都与字母混合但用空格分隔)。我尝试拆分输入字符串但是当检查结果数组时我发现有很多空字符串,那么如何更改我的拆分正则表达式以删除此空格?Patternreg=Pattern.compile("\\D0*");String[]numbers=reg.split("asd0085sa2239349x");for(Strings:numbers){System.out.println(s);}结果:852239349我知道我可以遍历数组并删除空结果。但是如何只使用正则表达式呢? 最佳答案 如果您使用
我现在正在用StringUtils.split(Stringstr,charseparatorChar)使用指定的分隔符(,)分割输入字符串。示例输入数据:a,f,h输出String[]{"a","f","h"}但是有以下输入:a,,h它只返回String[]{"a","h"}我需要的只是空字符串对象:String[]{"a","","h"}我怎样才能做到这一点? 最佳答案 如果您要使用StringUtils,则调用splitByWholeSeparatorPreserveAllTokens()方法而不是split()。
我没有在任何地方找到答案..如果我有:Strings="Howareyou"?我怎样才能把它分成两个字符串,所以第一个字符串包含0..s.length()/2和第二个字符串s.length()/2+1..s.length()?谢谢! 最佳答案 应该这样做:Strings="Howareyou?";Stringfirst=s.substring(0,s.length()/2);//gives"Howar"Stringsecond=s.substring(s.length()/2);//gives"eyou?"String.substr
我正在实现一个Spliterator,它通过让trySplit()返回null来明确限制并行化。实现estimateSize()是否会为此拆分器生成的流提供任何性能改进?或者估计大小仅对并行化有用?编辑:为澄清起见,我特别询问的是估计尺寸。换句话说,我的拆分器没有SIZED特性。 最佳答案 查看相关拆分器特征的调用层次结构表明它至少与stream.toArray()性能相关此外,在内部流实现中还有一个等效标志似乎用于排序:所以除了并行流操作之外,大小估计似乎也用于这两个操作。我的搜索并不详尽无遗,因此仅以这些为例。如果没有SIZED
我需要能够编写自己的拆分字符串方法,以便像这样输入String[]test1=mySplit("ab#cd#efg#","#");System.out.println(Arrays.toString(test1));将打印[ab,#,cd,#,efg,#]到控制台。到目前为止,我已经把它像那样拆分了,但我的方式留下了尴尬的空间,其中2个分隔符在一行中,或者分隔符在输入的开头。publicstaticString[]mySplit(Stringstr,Stringregex){String[]storeSplit=newString[str.length()];charcompare1,
下面两行代码:System.out.println(Arrays.toString("test".split("(?每个产生相同的输出:[t,e,s,t]我预计底线会产生[,t,e,s,t]因为它应该愿意在^之后和t之前拆分。有人可以指出我的想法错在哪里吗? 最佳答案 (?!^)匹配任何不在字符串开头的位置,就像(?.自^anchor没有任何长度,无论你向前看还是向后看都无关紧要。想象一下字符串test像这样|表示字符之间的位置:|t|e|s|t|^matcheshere($matcheshere)(?!^)在位置0不匹配因为当向前
我有一个String,其中有一些ASCII控制字符(即RS(0x1e)和US(0x1f))。我在我的代码中定义了它们:staticpublicfinalbyteRS=0x1E;staticpublicfinalbyteUS=0x1F;稍后在我的代码中,我想使用这些字符拆分字符串:String[]records=content.split(String.valueOf(RS));但是,这不能正常工作。经过一番摆弄后,我发现这String[]records=content.split("\u001e");确实有效,但在那种情况下,我必须记住代码。我也在其他部分使用了RS静态字节,所以仅仅改