哈 问下你怎么想的这道题 下面程序能具体解释下么public static long getConvertInt(long lInput){if(lInput == 0){ return 0; } String str = String.valueOf(lInput).replaceAll("0+$",""); char[] chars = str.toCharArray(); StringBuffer bu
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/01 12:51:36
哈 问下你怎么想的这道题 下面程序能具体解释下么public static long getConvertInt(long lInput){if(lInput == 0){ return 0; } String str = String.valueOf(lInput).replaceAll("0+$",""); char[] chars = str.toCharArray(); StringBuffer bu
哈 问下你怎么想的这道题 下面程序能具体解释下么
public static long getConvertInt(long lInput)
{
if(lInput == 0)
{
return 0;
}
String str = String.valueOf(lInput).replaceAll("0+$","");
char[] chars = str.toCharArray();
StringBuffer buffer = new StringBuffer();
for(int i = chars.length - 1; i >= 0; i--)
{
if (str.lastIndexOf(chars[i]) == i) {
buffer.append(chars[i]);
}
}
return Long.valueOf(buffer.toString());
}
哈 问下你怎么想的这道题 下面程序能具体解释下么public static long getConvertInt(long lInput){if(lInput == 0){ return 0; } String str = String.valueOf(lInput).replaceAll("0+$",""); char[] chars = str.toCharArray(); StringBuffer bu
是0就直接输出,实际上只要是1位数就可以直接输出
否则把数字变成字符串str,并且用正则“0+$”把末尾的0去掉
从后往前遍历str每个字符,如果遍历到的字符在str中最后一次出现的位置和遍历到的位置相同,那么说明只出现了这一次,或者出现了多次,但是这是从右往左第一次出现
满足3的字符放进buffer里
转成long返回