[英]How to trim an encoded String?
我正在使用以下代碼:
searchKey = URLEncoder.encode(searchKey,"UTF-8");
builder.queryParam("searchKey", searchKey.trim());
現在,我試過了:
String s = "hello%20world%20%26%20you%20%20%20%20%20%20";
s.trim();
System.out.println(s);
Output:
hello%20world%20%26%20you%20%20%20%20%20%20
可能的解決方法是什么?
注意:我也想過在編碼之前修剪我的 searchKey,但它已經被編碼為從其他使用其他編碼的其他 restcall 接收到的。
String class 的 trim() 方法是否適用於編碼字符串?
不,原因很簡單,Java 無法區分編碼字符串和恰好包含編碼字符序列的字符串。 URL 編碼只是無數編碼中的一種,如果字符串是在任何特定編碼中編碼的值,則嘗試找出它是不可行的。
如果要修剪編碼的字符串,則必須先對其進行解碼,然后對其進行修剪,然后對其進行重新編碼。
但是請注意s.trim();
不更新s
。 字符串是不可變的。 您需要分配s = s.trim();
,或類似的。
使用s.trim();
並將其存儲在一個新變量中,然后使用該新變量。 它應該開始工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.