2012-07-28 140 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