2013-03-07 77 views
16

Tôi có một chuỗi:Thay thế ký tự cuối cùng trong một chuỗi

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

Bây giờ tôi muốn thay thế cuối cùng , với không gian.

Tôi đã sử dụng:

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

Nhưng vẫn Tôi nhận được chuỗi cũ.

Tôi có thể sử dụng cái gì thay vì điều này? vì vậy tôi có thể nhận được kết quả như

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

Trả lời

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

tôi muốn thay thế cuối cùng '' với không gian

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

Nếu bạn muốn loại bỏ dấu phẩy dấu, đơn giản thoát khỏi + " ".

3

Các chuỗi đầu tiên là bất biến trong java, bạn phải gán kết quả của thay thế cho biến.

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

Bạn cũng có thể sử dụng regex làm tùy chọn sử dụng String#replaceAll(regex, str);

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

Để có được kết quả cần thiết bạn có thể làm như sau:

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

Bạn chỉ có thể sử dụng substring:

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

Hãy chắc chắn để phân công lại lĩnh vực của bạn sau khi thực hiện substring như Strings are immutable in java

+0

thnx nó làm việc ...:) – user1697114

+0

thông báo bằng javascript ** length() ** là [** length ** với dấu ngoặc vuông] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length) – danihp

+0

@danihp và trong C# đó là '.Length' ... nhưng sau đó tôi mong đợi một ngôn ngữ ** hoàn toàn không liên quan ** có mã khác nhau http://javascriptisnotjava.io/ – weston

-3

Sửa đổi mã như fie ldName = fieldName.replace (",", "");

+0

Điều đó sẽ thay thế tất cả các lần xuất hiện của "," bằng "", nhưng chúng chỉ muốn thay thế lần cuối cùng. –

+0

Không cung cấp các giải pháp sai nếu bạn không thể đọc/hiểu câu hỏi rõ ràng –

+0

Vui lòng không trả lời mà không đọc câu hỏi một cách chính xác – smilyface

0

bạn có thể sử dụng biểu thức thông thường để xác định các dấu phẩy cuối cùng (,) và thay thế bằng "" như sau:

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

Mặc dù hoàn toàn chính xác, câu trả lời của bạn là * JavaScript *. Chủ đề này là * Java * có liên quan. – Chop

3

Hãy thử điều này:

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

Đã @Abubakkar Rangara đã trả lời một cách dễ dàng để xử lý sự cố của bạn

Thay thế là:

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]); 
    } 
} 
Các vấn đề liên quan