java中如何把一个字符串除了 0~9 a~z A~Z !*() 之外其他字符按其ASCII码的十六进制加%进行表示

例如“-”编码为“%2D”,求详细代码,在线等急用... 例如“-”编码为“%2D”,求详细代码,在线等急用 展开
 我来答
yugi111
2014-03-26 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
package zhidao;

/**
 * @author yugi111
 */
public class Printer
{
public static void main ( String[] args )
{
System.out.println (convert (-1, "&*@adsf232-232319ay9"));
}

private static String convert ( int i, String src )
{
i++;
if (i > src.length () - 1)
{
return "";
}
char c = src.charAt (i);
if (String.valueOf (c).matches ("[\\da-zA-Z\\!\\*\\(\\)]"))
{
return c + convert (i, src);
}
else
{
return "%" + Integer.toString (src.charAt (i), 16).toUpperCase () + convert (i, src);
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式