Java字符串分离

标签 java string stringbuilder stringtokenizer

我在尝试获得所需的输出时陷入困境。它实际上是我在另一个问题中面临的字符串分离问题。

// Inputs
        String input1 = "=DIVIDE(Input!RC,Input!R[1]C)"; // B1
        String input2 = "=DIVIDE(MULTIPLY(Input!R[-1]C,Input!R[1]C),100)"; // B2
        String input3 = "=Input!R[-2]C + R[-1]C"; // B3
        String input4 = "=DIVIDE(R[-2]C,Input!R[-2]C)"; // B4
        String input5 = "=R[-4]C+R[-1]C"; // B5

现在,我必须用适当的 B 值替换 RC。

以 input5 为例,我将查看 R[-4]C,然后从其 input5 开始,我将添加 (-4) 和 (5) 以获得 1,并将 R[-4]C 替换为 B1。

对于所有人来说都是一样的。

// Desired output
        // =DIVIDE(Input!B1,Input!B2)
        // =DIVIDE(MULTIPLY(Input!B1,Input!B3),100)
        // =Input!B1+calc!B2
        // =DIVIDE(calc!B2,Input!B2)
        // =calc!B1+calc!B4

任何人都可以告诉我如何实现这一目标吗?

最佳答案

这是一些想法:

identify offset (1 for input1, 2 for input2 etc)
for each match of "R" ( "[" DIGIT+ "]" )? "C"
  if DIGIT+ != "" then <index> = offset + tonumber(DIGIT+) else <index> = offset
  replace match with B<index>

关于Java字符串分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14758459/

相关文章:

JavaFX:带有图像和文本的选择框

java - 为什么我的方法使用 String.replace 和 HashMap 不替换字符串?

java - 计算输入的以空格分隔的数字

java - Netbeans - Java 应用程序可以对 'Stop' 使用react吗?

java - 如何在java中检查当前的键盘语言

java - 使用 spring batch 并行执行作业

java - "Nice"获取开始标记和匹配结束标记(括号等)之间的子字符串的方法

c# - 字符串格式和使用 "+"构建字符串

c# - 如何附加两个 stringBuilder?

java - BufferedReader 不会读取输入的最后一行