Java 字符串函数,用于接受10位手机号码,丢弃任何少于10位的号码,并在开始处修剪零
当我们输入类似“00982787878”(有9位数字和零)的“否”时,在零被修剪后不应显示输出 问题: while循环中存在一些问题,因为输出是一个只修剪了一个0的数字 代码:Java 字符串函数,用于接受10位手机号码,丢弃任何少于10位的号码,并在开始处修剪零,java,Java,当我们输入类似“00982787878”(有9位数字和零)的“否”时,在零被修剪后不应显示输出 问题: while循环中存在一些问题,因为输出是一个只修剪了一个0的数字 代码: 公共静态字符串trimzero(字符串编号) { 布尔exitLoop=true; 整数计数=0; while(exitLoop&&mobNumber.substring(count)=“0”) mobNumber=mobNumber.substring(0); if(mobNumber.charAt(计数)!='0')
公共静态字符串trimzero(字符串编号)
{
布尔exitLoop=true;
整数计数=0;
while(exitLoop&&mobNumber.substring(count)=“0”)
mobNumber=mobNumber.substring(0);
if(mobNumber.charAt(计数)!='0')
{
exitLoop=false;
}
计数++;
mobNumber=mobNumber.replaceAll(“,”);
mobNumber=mobNumber.length()<10?mobNumber.substring(mobNumber
.length()):mobNumber.substring(mobNumber.length()-10);
返回号码;
}
如果我正确理解了您的问题:
public static String trimZeros(String number) {
//trim zeros at left
number = number.replaceAll("^0*", "");
//if the length is < 10, returns an empty string
if (number.length() < 10) {
return "";
}
//if the length is > 10, trims any number at left
if (number.length() > 10) {
number = number.replaceAll(".*(\\d{10})$", "$1");
}
return number;
}
公共静态字符串零(字符串编号){
//在左边修剪零
number=number.replaceAll(“^0*”,”);
//如果长度小于10,则返回空字符串
if(number.length()<10){
返回“”;
}
//如果长度>10,则修剪左侧的任何数字
如果(number.length()>10){
number=number.replaceAll(“*(\\d{10})$”,“$1”);
}
返回号码;
}
那么,您有什么问题吗?为什么要删除电话号码中的数字?这没有意义-您正在更改数字。不要将字符串与==进行比较。您在这里面临的问题是什么不,它不应该引发任何异常,它不应该显示任何内容。此外,如果编号大于10@hotshot02因此,只需将throw
替换为return”“代码>然后呢?还有,!=10
包含长度超过10位的数字。我还是不明白弄乱电话号码有什么用。
public static String trimZeros(String number) {
//trim zeros at left
number = number.replaceAll("^0*", "");
//if the length is < 10, returns an empty string
if (number.length() < 10) {
return "";
}
//if the length is > 10, trims any number at left
if (number.length() > 10) {
number = number.replaceAll(".*(\\d{10})$", "$1");
}
return number;
}