草庐IT

lambda表达式

全部标签

java - 如何在 Java 正则表达式中表达 ":"但前面没有 "\"?

如何在Java正则表达式中表达“前面没有”?例如,我想搜索“:”,但前提是它前面没有直接加上“\”。我该怎么做? 最佳答案 使用negativelookbehind:"(?四个反斜杠的原因是:反斜杠是正则表达式中的特殊字符,因此您需要正则表达式\\来匹配单个反斜杠。反斜杠在Java字符串中必须转义,所以上面的每一个反斜杠都必须写成\\,一共四个。示例代码:Patternpattern=Pattern.compile("(?输出:10 关于java-如何在Java正则表达式中表达":"但前

java - 获得独特的正则表达式匹配器结果(不使用 map 或列表)

有没有办法只获得唯一的匹配项?匹配后不使用列表或映射,我希望匹配器输出立即是唯一的。示例输入/输出:Stringinput="Thisisaquestionfrom[userName]aboutfindinguniqueregexmatchesfor[inputString]withoutusinganylistsormaps.-[userName].";Patternpattern=Pattern.compile("\\[[^\\[\\]]*\\]");Matchermatcher=pattern.matcher(rawText);while(matcher.find()){Stri

java - 正则表达式匹配类的导入

我一直在尝试编写一个正则表达式来匹配类的导入。让类(class)成为importstaticorg.junit.Assert.*;importorg.package.Test;importmypackage.mystuff;输出应该是[org.junit.Assert.*,org.package.Test,mypackage.mystuff]。我一直在努力处理换行符和一般的正则表达式,因为我对它们没有那么多经验。这是我目前的尝试:((? 最佳答案 这(几乎)满足您的需求:(?DebuggexDemo几乎是因为匹配项包括新行(如果有的

java - 为什么 java lambda 表达式不引入新级别的作用域?

据我所知,在Haskell等语言中,作为lambda演算的一部分,每个lambda表达式都有自己的范围,所以如果我有嵌套的lambda表达式,例如:\x->(\x->x)则第一个\x参数与第二个\x不同。在Java中,如果你这样做,你会得到一个编译错误,就像你再次使用x作为参数名称或lambda中的局部变量名称,如果它已经在封闭的内部使用的话范围,例如作为方法参数。有谁知道为什么Java以这种方式实现lambda表达式——为什么不让它们引入一个新级别的作用域并像匿名类那样表现?我假设这是因为某些限制或优化,或者可能是因为lambda必须被侵入到现有语言中?

java - 在 Java 8 中使用流、lambda

我想优化以下代码以获取现有的ArrayList并根据以下逻辑创建一个新列表。Java8中的流式处理/lambda是否使其成为可能?for(ShipmentTracingDTOtracing:tracings){if(tracing.getDestination()){newTracings.add(tracing);break;}newTracings.add(tracing);} 最佳答案 您可以使用IntStream.range来完成和List.subList可能是:ListnewTracings=tracings.subLis

java 正则表达式 : find pattern of 1 or more numbers followed by a single

我遇到了Java正则表达式问题。如何找到1个或多个数字后跟单个.在一个字符串中? 最佳答案 "^[\\d]+[\\.]$"^=startofstring[\\d]=anydigit+=1ormoreocurrences\\.=escapeddotchar$=endofstring 关于java正则表达式:findpatternof1ormorenumbersfollowedbyasingle,我们在StackOverflow上找到一个类似的问题: https:

java - 在Java中使用正则表达式提取双引号之间的子字符串

我有这样一个字符串:"@Test(groups={G1},description="adc,def")"我想在Java中使用正则表达式提取“adc,def”(不带引号),我应该怎么做? 最佳答案 如果你真的想使用正则表达式:Patternp=Pattern.compile(".*\\\"(.*)\\\".*");Matcherm=p.matcher("your\"string\"here");System.out.println(m.group(1));解释:.*-anything\\\"-quote(escaped)(.*)-an

java - 创建 lambda 表达式的字符串表示形式

这个问题在这里已经有了答案:Isitpossibletoretrievelambdaexpressionatruntime(2个答案)关闭8年前。出于调试目的,我正在尝试在Java8中创建lambda表达式的字符串表示形式(特别是Predicate,尽管它对其他lambda表达式也很有趣)。我的想法类似于这个:publicclassWhatever{privatestaticStringpredicateToString(Predicatepredicate){Stringrepresentation=...//domagicreturnrepresentation;}publicst

regex - 不带空格的字母数字、连字符和下划线的正则表达式

这个问题在这里已经有了答案:Alphanumeric,dashandunderscorebutnospacesregularexpressioncheckJavaScript(7个答案)关闭3年前。我想要一个正则表达式来检查字符串是否包含字母数字、连字符和下划线。除了这三个之外,不应有任何空格或其他特殊字符。我的字符串将在这两种模式中的任何一种下。XYZ0123_123456ABCdefGHI-727这个表达式我已经试过了。但它没有锻炼。[[a-zA-Z0-9_-]*]

java - 匹配 "| "的正则表达式

我正在尝试使用Java的useDelimiterScanner类上的方法来做一些简单的解析。基本上每一行都是一条由“|”分隔的记录,例如:2|JohnDoe3|JaneDoe4|JackieChan该方法将要匹配的正则表达式作为参数。谁能给我提供匹配|(两边用一个空格分隔的竖线)的正则表达式。谢谢,我将不胜感激! 最佳答案 我想到了\s\|\s,它在Java中将表示为"\\s\\|\\s"。我不知道这是否是最好的。我不需要任何硬核,只需要有用的东西,这似乎:)很抱歉回答我自己的问题,我想在输入它后它帮助我思考。