2010-01-29 17 views
204

Sfortunatamente, Java non ha alcuna sintassi per i valori letterali stringa multilinea. Nessun problema se l'IDE rende facile lavorare con costrutti comeIncollare una stringa Java multilinea in Eclipse

String x = "CREATE TABLE TEST (\n" 
      + "A INTEGER NOT NULL PRIMARY KEY, \n" 
      ... 

Qual è il modo più veloce per incollare una stringa su più righe dagli appunti nella sorgente Java con Eclipse (in un modo che crea automaticamente il codice come quanto sopra).

+0

possibile duplicato di [Surround tra virgolette] (http://stackoverflow.com/questions/121199/surround-with-quotation-marks) –

risposta

392

Ok, ho solo found the answer (su Stackoverflow, non meno).

Eclipse ha un opzione in modo che copia-incolla di testo su più righe in stringhe letterali si tradurrà in nuove righe citate:

Preferenze/Java/Editor/Typing/"Escape testo quando si incolla in una stringa letterale "

+44

Va notato che dopo aver abilitato la funzione devi ancora scrivere prima due virgolette e quindi incollare il testo all'interno di quei segni. – Lycha

+53

Allora perché nel mondo questa opzione non è abilitata per impostazione predefinita? –

+0

Per NetBeans è disponibile un plug-in: http://plugins.netbeans.org/plugin/2748/?show=true – mjn

-8

Per quanto ne so, questo sembra fuori dall'ambito di un IDE. Copia, puoi copiare la stringa e poi provare a formattarla usando ctrl + shift + F Molto spesso queste stringhe multilinea non sono usate con codice fisso, piuttosto devono essere usate da file di proprietà o xml.che possono essere modificate in un secondo momento tempo senza necessità di cambio di codice

+2

Non sono d'accordo. Questo è totalmente nell'ambito di un IDE. Dopo tutto, è possibile modificare una stringa e digitare immettere al centro di esso e Eclipse crea una stringa multi-linea Java corretta. – Thilo

+0

@Thilo La tua domanda era di copiare una stringa in un editor che non era in un formato come per l'IDE, ma vuoi che faccia automaticamente questi arrangiamenti per te! Che credo sia fuori dalla visione dell'IDE. Dimmi una cosa che è esattamente il tuo requisito. Perché vuoi copiare la stringa? In modo da ottenere chiarezza del problema.Pls modifica la domanda piuttosto commenta – Ravisha

+2

Ho trovato molti casi d'uso in cui hai valori di testo di grandi dimensioni che vuoi usare direttamente in codice Java (ad esempio in un test di unità in cui si desidera provare un metodo con input molto lungo). Quindi dovrai spesso incollare una stringa multi-linea di grandi dimensioni come un testo Lorem Ipsum generato nel programma Java.Sembra che sia l'ambito per l'IDE a supportare tale operazione senza costringere l'utente a suddividere manualmente il testo e circondare ogni riga con virgolette e +. – ammianus

4

Se il tuo edificio SQL in uno strumento come TOAD o altri IDE orientati SQL hanno spesso il markup di copia negli appunti. Ad esempio, TOAD ha un CTRL + M che prende l'SQL nel tuo editor e fa esattamente ciò che hai nel codice sopra. Copre anche il contrario ... quando si estrae una stringa formattata da Java e si desidera eseguirla in TOAD. Incollare l'SQL in TOAD ed eseguire un CTRL + P per rimuovere le virgolette.

+0

CNTL + M = Crea codice. Nella vista> Opzioni rospo è possibile impostare il formato in cui è inserito il 'codice'. Java, ad esempio, è lì. – checketts

11

è possibile utilizzare questo plugin di Eclipse: http://marketplace.eclipse.org/node/491839#.UIlr8ZDwCUm questo è un multi-line editor di stringa popup. Posizionare il punto di inserimento in una stringa letterale stampa ctrl - spostamento - alt - m e incollare il testo.

+2

L'ho installato in Juno, riavviato ma non fa nulla. La combo non fa nulla e nemmeno posso trovare un oggetto nel menu contestuale :-( –

2

See: Multiple-line-syntax

'anche il supporto delle variabili nella stringa multilinea, per esempio:

String name="zzg"; 
String lines = ""/**~!{ 
    SELECT * 
     FROM user 
     WHERE name="$name" 
}*/; 
System.out.println(lines); 

uscita:

SELECT * 
    FROM user 
    WHERE name="zzg"