Tag: 取代

IntelliJ结构搜索和替换问题

有没有一种简单的方法来捕捉类型? 我似乎无法做基本的事情,比如并用变量表达式,比如$mapType$$mapEnd$做一个简单的替换。 这可能有什么原因吗? 也就是说,如果我有一个表达式,比如.*\s*.*abc ,我把它分成两个变量, .*\s*和.*abc ,表达式与任何文本都不匹配。 怎么可能出错? Example template: $var1$ = $impl$ Example second template: $var1$ = $type$$implEnd$ 如果$impl$是一个完整的正则表达式,将$type$和$implEnd$与一半匹配的正则表达式放在一起会导致模式不匹配。 怎么可能出错? 我正在尝试进行这种转变: List list = new ArrayList(); List list = Lists.newArrayList(); 显然,我需要以某种方式捕获“数组”,以及只有那些没有参数的类型。

String.replace()返回不需要的字符串

我正在处理一段代码,我要将字符串拆分成单个部分并替换它们。 我的代码的基本逻辑流程是,有一个包含公式的字符串。 LHS下面的数字,即1,2和3是不同对象的ID。 一旦我拆分它们,我就会使用这些ID,获取相应的值并将下面String中的ID替换为其各自的值。 我的字符串如下 – String str = “(1+2+3)>100”; 我用以下代码分割字符串 – String[] arraySplit = str.split(“\\>|\\<|\\="); String[] finalArray = arraySplit[0].split("\\(|\\)|\\+|\\-|\\*"); arraySplit[0] = arraySplit[0].replace(id,reading); 因此,在分割字符串之后,我将用值替换字符串,即字符串现在是, (30+45+50)>100 ,其中30,45和50是相应的值。 (然后在SpEL中使用此字符串来评估公式) 在用值替换字符串时,我得到以下响应 – 初始字符串 – (1+2+3)>100其中1,2和3是id。 ID的各自值分别为30.0,45.0和50.0。 使用for循环替换值后,字符串是 – (50.00.0+45.0+50.0)>100 。 第一个值很奇怪。 原因是在第三次迭代中,字符串看起来像这样 – (30.0 + 45.0 + 3)> 100。 因此,在第三次迭代中替换字符串时,它将所有3的实例替换为50.0,从而产生上述字符串。 所以显然使用String.replace()在这里不是更好的选择。 那么在这种情况下我应该使用什么方法呢? 我也在使用SpEL,所以如果使用SpEL有更好的解决方案,那么它也很好。 这里, (1+2+3)>100只是一个例子。 圆括号是公式的一部分,字符串也可以是((1+2+3)*(5-2))>100 。 或者甚至可以改变公式的语法,目前公式是这样的 […]

Java – 使用数组值的replace()方法正在改变数组值?

我正在做类似的事情 public static String[] list = {“a”,”b”,”c”,”d”,} //It gives me a NullPointeException if I didn’t use static public String encrypt(String a){ a = a.replace(list[0],list[2]); a = a.replace(list[4],list[3]); return a; } 我有另一种方法可以反转它 public String decrypt(String a){ a = a.replace(list[2],list[0]); a = a.replace(list[3],list[4]); return a; } 当然这是简化的,我正在使用的真实代码使用整个字母和一些数字。 所以这是我的问题:如果我输入123这样的东西到encrypt()并输出ngV然后我输入ngV到decrypt()它给我像1q3 。 只有部分字母正确切换,有些则没有。 使用我缺少的数组值的replace()方法有什么用吗? 我显然是Java新手。 另外我读了Java replace()问题但是replaceAll()没有用。

Arraylist – 设置/添加方法用法 – Java

我有一个整数的Arraylist。 我的要求是确定arraylist是否存在于指定索引处的元素。如果是,则应将值设置为该索引(使用set方法),否则应将值添加到该索引位置(使用add方法) 在我的java代码中找到处理上述条件有点困难。请帮忙。 这是我到目前为止所拥有的: ArrayList tempArray = new ArrayList(); int counter = 0; int tempValue = 0; For LOOP – if (//certain conditions are satisfied){ tempValue = calculateNewValue(); tempArray.add(counter, tempValue); //Need some logic here to determine if its a set or add method to be used } if (//some other conditions are satisfied){ counter++; } […]