2011-07-24 48 views
25

Importación de un archivo CSV a la base de datos MySQL. Esto se puede hacer usando el soporte java.mysql para barra diagonal en la ruta del archivo. Si el usuario proporciona la ruta¿Cómo reemplazar la barra diagonal hacia atrás para barra inclinada usando java?

c:\upload\date\csv\sample.csv 

MySQL no admite este tipo de patrón de ruta. Quiero buscar barras invertidas en el camino y reemplazarlos con una barra inclinada, para dar el siguiente:

c:/upload/date/csv/sample.csv 

¿Cómo se hace eso?

Respuesta

42

en Java, utilice esto:

str = str.replace("\\", "/"); 

Tenga en cuenta que la versión de expresiones regulares de sustitución, es decir replaceAll(), no se requiere aquí; replace() aún reemplaza todas las apariciones del término de búsqueda, pero busca literal Cadenas, no coincide con expresiones regulares.

+0

cómo hacer la operación inversa de lo anterior como str = str.replace ("\", "//"); –

+0

@srinivasgowda si quiere decir que quiere reemplazar barras diagonales con barras diagonales inversas, simplemente cambie los parámetros: 'str = str.replace ("/"," \\ ");' – Bohemian

+0

No por una sola barra hacia atrás (\) para doblar hacia adelante barra inclinada (//) –

5

Si usted tiene:

String s = "c:\\upload\\date\\csv\\sample.csv";

En Java, sólo puede utilizar:

s = s.replace("\\", "/");

Lo que hará que s igual a:

c:/upload/date/csv/sample.csv

+0

Debe escapar de la barra invertida. – Jeffrey

8

El ejemplo String.replace (CharSequence, CharSequence) provisto por @PaulPRO y @Bohemian funcionará, pero es mejor usar la versión String.replace (char, char). Un poco más rápido. Aunque no tendrá una diferencia de velocidad notable, es mejor hacer tales optimizaciones donde sea posible.

String replacedStr = str.replace('\\', '/'); 
Cuestiones relacionadas