2013-03-07 21 views
16

ho una stringa:Sostituzione ultimo carattere in una stringa

fieldName= A=2,B=3 and C=3,

Ora voglio sostituire all'ultimo , con lo spazio.

ho usato:

if(fieldName.endsWith(",")) 
{       
fieldName.replace(","," "); 
fieldName = fieldName.replace((char) (fieldName.length()-1), 'r'); 
} 

Ma ancora io sono sempre la stessa vecchia corda.

Cosa posso usare al posto di questo? in modo da poter ottenere il risultato come

fieldName= A=2,B=3 and C=3 

risposta

5
fieldName = fieldName.substring(0, string.length()-1) + " "; 
2

voglio sostituire all'ultimo '' con lo spazio

if (fieldName.endsWith(",")) { 
    fieldName = fieldName.substring(0, fieldName.length() - 1) + " "; 
} 

Se si desidera rimuovere la virgola finale, semplicemente sbarazzarsi di + " ".

3

In primo luogo, le stringhe sono immutabili in java, è necessario assegnare il risultato della sostituzione a una variabile.

fieldName = fieldName.replace("watever",""); 

È possibile utilizzare anche usare espressioni regolari come opzione utilizzando String#replaceAll(regex, str);

fieldName = fieldName(",$",""); 
5

Per ottenere il risultato richiesto si può fare seguente:

fieldName = fieldName.trim(); 
fieldName = fieldName.substring(0,fieldName.length - 1); 
46

Si può semplicemente utilizzare substring:

if(fieldName.endsWith(",")) 
{ 
    fieldName = fieldName.substring(0,fieldName.length() - 1); 
} 

Assicurarsi di riassegnare il vostro campo dopo l'esecuzione substring come Strings are immutable in java

+0

thnx ha funzionato ...:) – user1697114

+0

avviso in javascript ** length() ** è [** lunghezza ** con parentesi quadre] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/lunghezza) – danihp

+0

@danihp e in C# è '.Length' ... ma poi mi aspetterei una lingua completamente ** non correlata ** per avere codice diverso http://javascriptisnotjava.io/ – weston

-3

Modificare il codice come fie ldName = fieldName.replace (",", "");

+0

Questo sostituirà tutte le occorrenze di "," con "", ma vogliono solo che l'ultimo sia sostituito. –

+0

Non fornire soluzioni sbagliate se non riesci a leggere/comprendere chiaramente la domanda –

+0

Non rispondere senza leggere correttamente la domanda – smilyface

0

è possibile utilizzare le espressioni regolari per identificare l'ultima virgola (,) e sostituirlo con "" come segue:

if(fieldName.endsWith(",")) 
{       
fieldName = fieldName.replace(/,([^,]*)$/," "); 
} 
+0

Benché sia ​​perfettamente corretta, la tua risposta è * JavaScript *. Questo argomento è * Java * -related. – Chop

3

Prova questo:

s = s.replaceAll("[,]$", ""); 
0

Già @Abubakkar Rangara rispose modo semplice per gestire il tuo problema

alternativa è:

String[] result = null; 
if(fieldName.endsWith(",")) {       
String[] result = fieldName.split(","); 
    for(int i = 1; i < result.length - 1; i++) { 
     result[0] = result[0].concat(result[i]); 
    } 
} 
Problemi correlati