2013-03-07 21 views
16

Mam ciąg:Wymiana ostatniego znaku w łańcuchu

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

teraz chcę zastąpić ostatni , z przestrzenią.

Użyłem:

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

Ale wciąż otrzymuję ten sam stary łańcuch.

Co mogę użyć zamiast tego? więc mogę uzyskać wynik jak

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

Odpowiedz

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

chcę zastąpić ostatni '' z miejsca

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

Jeśli chcesz usunąć przecinek spływu, po prostu pozbyć się + " ".

3

Po pierwsze Ciągi są niezmienne w java, musisz przypisać wynik zamiany do zmiennej.

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

Można użyć również użyć wyrażenia regularnego jako opcja przy użyciu String#replaceAll(regex, str);

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

Aby uzyskać żądany wynik można zrobić następujące:

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

można po prostu użyć substring:

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

Upewnij się przypisać swoje pole po wykonaniu substring jak Strings are immutable in java

+0

thnx to działało ...:) – user1697114

+0

anons w javascript ** length() ** to [** length ** with out brackets] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length) – danihp

+0

@danihp, aw C# to '.Length' ... ale wtedy oczekiwałbym, że całkowicie ** niezwiązany ** język będzie miał inny kod http://javascriptisnotjava.io/ – weston

-3

Zmień kod jak fie ldName = fieldName.replace (",", "");

+0

To zastąpi wszystkie wystąpienia "," znakiem "", ale chcą tylko zastąpić ostatnią. –

+0

Nie dostarczaj złych rozwiązań, jeśli nie możesz odczytać/zrozumieć pytania wyraźnie –

+0

Proszę nie odpowiadać bez przeczytania pytania poprawnie – smilyface

0

można użyć wyrażeń regularnych w celu identyfikacji ostatni przecinek (,) i zastąpienie go "" następująco:

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

Chociaż idealnie poprawne, twoją odpowiedzią jest * JavaScript *. Ten temat jest powiązany * z Java. – Chop

3

Spróbuj tego:

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

Już @Abubakkar Rangara odpowiedział łatwy sposób obsłużyć problem

alternatywą jest:

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]); 
    } 
} 
Powiązane problemy