草庐IT

拆分去重

全部标签

java - 根据空格在 java 中拆分一个字符串,用双引号和单引号转义那些空格,前面是\

我对正则表达式完全陌生。我正在尝试将一个表达式放在一起,该表达式将使用所有未被单引号或双引号引起来并且前面没有“\”的空格来拆分示例字符串例如:-Heisa"manofhis"words\always必须拆分为Heisa"manofhis"words\always我明白了ListmatchList=newArrayList();Patternregex=Pattern.compile("[^\\s\"']+|\"[^\"]*\"|'[^']*'");MatcherregexMatcher=regex.matcher(StringToBeMatched);while(regexMatch

java - 如何拆分字符串,包括标点符号?

我需要拆分一个字符串(在Java中),标点符号存储在与单词相同的数组中:Stringsentence="Intheprecedingexamples,classesderivedfrom...";String[]split=sentence.split("");我需要拆分数组为:split[0]-"In"split[1]-"the"split[2]-"preceding"split[3]-"examples"split[4]-","split[5]-"classes"split[6]-"derived"split[7]-"from"split[8]-"..."有什么优雅的解决方案吗?

java - 拆分复杂的字符串

我有这样一个字符串:1|f1||f2我想用'|'分割通过Java但我需要忽略和/>.我怎样才能做到这一点?这似乎是一个正则表达式方法上面的字符串应该拆分成:1f1a1|a2a3|a4f2 最佳答案 split方法使用正则表达式作为参数和|在正则表达式中是特殊字符,表示或。使其成为正常字符位置\\在喜欢之前"yourString".split("\\|");在您的情况下,您还需要look-ahead机制让你的正则表达式看起来像/>)?\\|(?=[^>]*(它将split于/>|可选/>之前或在它之后但只有在没有>的情况下之后直到或输

java - 使用单词定界符拆分字符串

我有一个字符串如下a>bandceandf>g结果必须是:a>bandceandf>g我想在出现“and”、“or”时拆分字符串,并检索delims以及token。[我需要它们来评估表达式]我尝试使用StringTokenizer作为newStringTokenizer(x,"\\sand\\s|\\sor\\s",true);但我没有得到想要的结果。我尝试使用扫描仪作为Scannersc=newScanner(x);sc.useDelimiter("and|or");这可以拆分但不返回分隔符。请提出建议。我在上面给出了a,b,c,但是可以用单词代替带空格的a,b,c。更新示例。

java - 你如何重构@Transactional 方法来拆分非事务部分

我有一个作为独立Java应用程序的一部分运行的数据访问类。它目前正在工作,这意味着定义了一个事务管理器,但我想重构该类以减少事务的范围,但如果我这样做,我会得到org.hibernate.HibernateException:NoHibernateSessionboundtothread,andconfiguration不允许在此处创建非事务性,这意味着移动@Transactional以某种方式阻止了它被识别。我的原始版本的重构方法是私有(private)的,但我发现有人建议将其更改为公开的,因为在某些情况下注释不会被提取。publicclassDoStuff{@Transaction

java - 具有多个拆分参数的 Guava 拆分器

使用Guava,我可以将拆分设置为单个字符、字符串或正则表达式。我想要的是拆分多个输入,而不必诉诸于使用正则表达式,因为我想使用方法调用来构建分隔符。我想做的是让它让我做类似的事情:Splitter.on(',').on('.').on('|').on("BREAK").splitToList(test);因此对于输入“a,b,c.d|eBREAKf”将产生一个包含a/b/c/d/e/f的列表。这是在我正在编写的类中完成的,因此当调用最终处理数据并将其用作唯一的.on()调用时,可能会从输入构造一个正则表达式?谢谢。 最佳答案 正如

java - 如何根据第一次出现拆分字符串?

如何根据第一个等号"="拆分字符串?所以test1=test1应该转化为test1,test1(作为一个数组)"test1=test1".split("=")在此示例中运行良好。但是CSV字符串呢test1=test1= 最佳答案 您可以使用split的第二个参数,如Javadoc中所示如果您希望拆分发生的次数尽可能多,请使用:"test1=test1=test1=".split("=",0);//["test1","test1","test1"]如果您希望拆分只发生一次,请使用:"test1=test1=test1=".split

java - 在 Java 中按引号之间的值拆分字符串

我正在用Java读取一个文件,并希望用引号内的值分隔每一行。例如,一行将是..."100","这是","a","测试"我希望数组看起来像..[0]=100[1]=this,is[2]=a[3]=test我通常用逗号分隔,但由于某些字段包含逗号(上例中的位置1),因此不太合适。谢谢。 最佳答案 您可以按以下方式拆分它:Stringinput="\"100\",\"this,is\",\"a\",\"test\"";for(Strings:input.split("\"(,\")*")){System.out.println(s);}输

java - ConcurrentHashMap 中 String intern 方法的去重

我看过JavaDays的一个代码,作者说这种有概率的方法对于存储字符串非常有效,类似于Stringintern方法publicclassCHMDeduplicator{privatefinalintprob;privatefinalMapmap;publicCHMDeduplicator(doubleprob){this.prob=(int)(Integer.MIN_VALUE+prob*(1L();}publicTdedup(Tt){if(ThreadLocalRandom.current().nextInt()>prob){returnt;}Texist=map.putIfAbse

java - 如何拆分字符串但在 java 中保留分隔符?

这个问题在这里已经有了答案:Howtosplitastring,butalsokeepthedelimiters?(24个答案)关闭3年前。我正在尝试重新创建discord解析消息的方式,其中包含表情符号。例如,我希望将消息Hello,:smile::hearth:world!拆分为以下数组:["Hello,",":smile:",":hearth:","world!"]我已经尝试使用以下代码拆分数组:Arrays.toString(message.split("(:[A-Za-z]+:)"))但是,split方法会删除找到的分隔符。所以最终结果是这样的:["Hello",,,"wor