Come tutti sappiamo, possiamo utilizzarecome sfuggire "" caratteri in Java
string [email protected]"E:\dev_workspace1\AccessCore\WebRoot\DataFile"
in C# per non raddoppiare la '\'.
Ma come fare in java?
Come tutti sappiamo, possiamo utilizzarecome sfuggire "" caratteri in Java
string [email protected]"E:\dev_workspace1\AccessCore\WebRoot\DataFile"
in C# per non raddoppiare la '\'.
Ma come fare in java?
Sfortunatamente, non esiste un operatore di escape completo in Java. È necessario scrivere il codice come:
String aa = "E:\\dev_workspace1\\AccessCore\\WebRoot\\DataFile";
Non c'è tutta operatore stringa di escape, ma, se è per l'accesso ai file, è possibile utilizzare uno slash:
String aa="E:/dev_workspace1/AccessCore/WebRoot/DataFile";
Windows allows sia in avanti che backslash come separatore di percorsi. Non funzionerà se si passa il percorso a un programma esterno che maneggia con esso e fallisce, ma è piuttosto raro.
non potrebbe essere una risposta diretta alla tua domanda, ma mi sento questo dovrebbe essere sottolineato:
Quindi non c'è, ma come ha sottolineato Vinko, non hai davvero bisogno di preoccuparti di quella proprietà; le barre in avanti funzionano bene. –
Il modo davvero indipendente dal sistema è quello di fare questo:
String aa = "E:/dev_workspace1/AccessCore/WebRoot/DataFile";
String output = aa.replace('/', File.separatorChar);
Vi darà "E: \ dev_workspace1 \ AccessCore \ WebRoot \ DataFile" su Windows e "E:/dev_workspace1/AccessCore/WebRoot/DataFile " quasi ovunque.
Perché la sostituzione? Il '/' funziona sempre su Java e viene convertito automaticamente nel separatore-char dipendente dal sistema. – Mnementh
Perché è davvero, davvero, davvero sicuro usare questa stringa. Puoi anche passarlo come parametro per dire un oscuro programma da riga di comando dell'era DOS su Windows o inviarlo a chiamate WinAPI molto antiche o qualsiasi altra cosa che non possa gestire le barre come separatore. –
Wrap you replace è un if (File.seperatorChar! = '/') Come ottimizzazione per le piattaforme unix. – KitsuneYMG
Se si scrive un percorso, è necessario utilizzare "/" come separatore di percorsi in Java. Il '/' è il separatore del percorso ufficiale sotto Java e verrà convertito nel separatore appropriato per la piattaforma (\ sotto windows,/sotto unix). Il resto della stringa è invariato se passato al sistema, quindi il \ "funziona anche sotto Windows. Ma il modo corretto per rappresentare questo percorso è "E:/dev_workspace1/AccessCore/WebRoot/DataFile".
Se si desidera rappresentare un '\' in una stringa Java, è necessario sfuggire a un altro: "Questa stringa contiene un \".
È in realtà Java che è intelligente? Ho pensato che questa fosse una conseguenza di Windows che consente/come separatore di file e \. –
Nessuna idea: ho sempre pensato che fosse Java ma è possibile che si trattasse delle chiamate API di Windows. Regolato nel caso. – paxdiablo
Heh, adoro il modo in cui le persone lavorano generosamente per il mio rappresentante! Grazie Pax per migliorare la risposta! :-) –