Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 要将一种形式的字符串转换为另一种形式吗?_Java_String - Fatal编程技术网

Java 要将一种形式的字符串转换为另一种形式吗?

Java 要将一种形式的字符串转换为另一种形式吗?,java,string,Java,String,我有一根像 "isnull(col_name,0)<>1 or isnull(col1_name,0)=0 and isnull(col2_name,0)>=100... " “isnull(col\u name,0)1或isnull(col1\u name,0)=0,isnull(col2\u name,0)>=100…” 我想将上面的字符串转换为以下形式: “(col\u name为null或col\u name 1)或(col1\u name为null或col1\u

我有一根像

"isnull(col_name,0)<>1 or isnull(col1_name,0)=0 and isnull(col2_name,0)>=100... "
“isnull(col\u name,0)1或isnull(col1\u name,0)=0,isnull(col2\u name,0)>=100…”
我想将上面的字符串转换为以下形式:

(col\u name为null或col\u name 1)
(col1\u name为null或col1\u name=0)
(col2\u name为null或col2\u name>=100)

我想用JAVA实现这个。我曾经尝试过使用分割函数,但每次情况都不一样(意思是在两个函数之间可能有“或”或“和”,那么如何分割呢?)。 然后我尝试使用contains函数,但如何以所需的形式替换isnull的完整部分。(我也尝试过使用字符数组,它工作得有点好,但根据我的代码,在某些地方失败了。)

事实上,我尝试了很多不同的方法,但我无法建立良好的逻辑,这将很快工作

请给我一些好主意。对不起,我的英语不好


谢谢。

str.replaceAll(“isnull\\([^,]+),\\d+\)([^\\d]+)(\\d+),“($1为null或$1$2$3”)
str.replaceAll(“isnull\\([^,]+),\\d+\)([^\\d]+)(\\d+),“($1为null或$1$2$3)”

正在写一个答案,但意识到正则表达式确实是一条出路。我认为,0表示“或”-,1可能表示“和”。如何将正则表达式更改为允许“和”?
str.replaceAll(“isnull\\([^,]+)([^\\d]+)(\\d+),“($1为null或$1$2$3)”).replaceAll(“isnull\\([^,]+)([^\\d]+)(\\d+),“($1为null,$1$2$3)”
如果这是您的意思。感谢Alexander Pavlov的快速回复。我试过这个,但它不能代替任何东西。我的原始字符串与应用此正则表达式后的字符串相同。我通过在控制台上显示字符串来检查它。您能编辑您的问题以包括Alexander的代码片段和您使用它的方式吗?也许您没有分配字符串,只是调用函数。对不起,Alexander Pavlov。这正是我想要的。以前在获取该字符串时,方括号包含在其中,因此它不起作用。对不起,我误导了你。非常感谢你的回复。我正在写一个答案,但意识到正则表达式确实是一条路要走。我认为,0表示“或”-,1可能表示“和”。如何将正则表达式更改为允许“和”?
str.replaceAll(“isnull\\([^,]+)([^\\d]+)(\\d+),“($1为null或$1$2$3)”).replaceAll(“isnull\\([^,]+)([^\\d]+)(\\d+),“($1为null,$1$2$3)”
如果这是您的意思。感谢Alexander Pavlov的快速回复。我试过这个,但它不能代替任何东西。我的原始字符串与应用此正则表达式后的字符串相同。我通过在控制台上显示字符串来检查它。您能编辑您的问题以包括Alexander的代码片段和您使用它的方式吗?也许您没有分配字符串,只是调用函数。对不起,Alexander Pavlov。这正是我想要的。以前在获取该字符串时,方括号包含在其中,因此它不起作用。对不起,我误导了你。非常感谢您的回复。输出结果前面的空格是否必要?(是否要包括它?)?(你想把它包括在内吗?)