【问题标题】:How to trim an encoded String?如何修剪编码的字符串?
【发布时间】:2019-10-18 08:56:34
【问题描述】:

我正在使用以下代码:

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);

输出:

hello%20world%20%26%20you%20%20%20%20%20%20

什么是可能的解决方法?

注意:我也想过在编码之前修剪我的 searchKey,但它已经被编码为从其他使用其他编码的其他 restcall 接收到的。

【问题讨论】:

  • 对于初学者,s.trim(); 不会更新 s
  • 但是,修剪编码字符串不会修剪%20s。解码、修剪、重新编码。
  • @AndyTurner(解码-修剪-编码)可以正常工作。谢谢。只是想知道是否有任何时尚的方法?

标签: java string encoding trim


【解决方案1】:

String 类的 trim() 方法是否适用于编码字符串?

不,原因很简单,Java 无法区分编码字符串和恰好包含编码字符序列的字符串。 URL 编码只是无数种编码中的一种,如果字符串是在任何特定编码中编码的值,尝试找出它是不可行的。

如果你想修剪一个编码的字符串,你必须先解码它,然后修剪它,然后重新编码。


但请注意,s.trim(); 不会更新 s。字符串是不可变的。您需要分配 s = s.trim(); 或类似名称。

【讨论】:

  • (decode - trim - encode) 可以正常工作。谢谢。只是想知道是否有任何时尚的方法?
【解决方案2】:

使用s.trim();并将其存储在一个新变量中,然后使用该新变量。它应该开始工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-22
    • 2022-01-01
    • 1970-01-01
    • 2014-09-24
    • 2017-04-25
    • 2012-12-21
    • 2020-01-25
    相关资源
    最近更新 更多