2012-07-28 139 views
0

大家好我一有下面的代码中使用Java我想替换另一个字符的所有VARCHAR说文字Java的替换字符串

我的Java应用程序

DROP TABLE IF EXISTS "countries"; 
CREATE TABLE "countries" (
    "CNT_ISO2" varchar(2) NOT NULL, 
    "CNT_CODEN" int(11) NOT NULL, 
    "CNT_NAME" varchar(100) NOT NULL, 
    "CNT_NAME_SHORT" varchar(50) NOT NULL, 
    "CNT_CONTINENT" int(11) DEFAULT NULL, 
    PRIMARY KEY ("CNT_ISO2") 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

例如: - 两个VARCHAR (2)和varchar(50)应与文本替换

由于......

回答

2

试试下面的代码:

stmt.replaceAll("varchar(\\(\\d+\\))?", "text"); 
+0

谢谢你Dmytro多数民众赞成工作正常...你可以解释一下.. ..? – Rakesh 2012-07-28 15:28:40

+1

Rakhesh,这是正则表达式的替代。所有的\符号都需要逃避括号的特殊含义。 – 2012-07-28 15:49:02

+0

好的再次感谢.... – Rakesh 2012-07-28 15:51:10

1

,我认为您的解决方案可能是那么容易,因为

stmt.replaceAll("varchar(\\(\\d+\\))?", "text") 
+0

没有,.replace需要一个字符,而不是字符串。我想你的意思是'stmt.replaceAll(“varchar([0-9] *)”,“text”);' – 2012-07-28 14:45:34

+0

@PaulTomblin请耐心等待[检查Javadoc](http://docs.oracle。 COM/JavaSE的/ 7 /文档/ API /爪哇/郎/ String.html)。但你指出加括号的数字需要删除。 – 2012-07-28 15:04:28

+0

@Marko Topolnik。你的代码有一些错误。只需加倍第一个和最后一个'/'符号。 – 2012-07-28 15:15:51