任何人都可以解释一下这种方法的正确回报是什么?现在我错过了一个。
public String getPhoneNumber() {
System.out.println(String.format("+%d(%2$s)%3$s-%4$s-%5$s", 38,
String.format("%010d", 501234567).substring(0, 3),
String.format("%010d", 501234567).substring(3, 6),
String.format("%010d", 501234567).substring(6, 8),
String.format("%010d", 501234567).substring(8)));
}
答案 0 :(得分:4)
您没有返回String
,您只需在默认系统打印流中打印一个。
因此您的代码将无法编译。
return String.format("+%d(%2$s)%3$s-%4$s-%5$s", 38,
String.format("%010d", 501234567).substring(0, 3),
String.format("%010d", 501234567).substring(3, 6),
String.format("%010d", 501234567).substring(6, 8),
String.format("%010d", 501234567).substring(8))
答案 1 :(得分:2)
试试这个:
public String getPhoneNumber() {
String result = String.format("+%d(%2$s)%3$s-%4$s-%5$s", 38,
String.format("%010d", 501234567).substring(0, 3),
String.format("%010d", 501234567).substring(3, 6),
String.format("%010d", 501234567).substring(6, 8),
String.format("%010d", 501234567).substring(8));
System.out.println(result);
return result;
}
答案 2 :(得分:0)
当然,这是一个可以做你想做的工具类,
执行main()方法以查看结果。
import java.util.Formatter;
/**
* <p>
* Utility for phone number.
* </p>
*
* @author eric
* @date Apr 23, 2014 1:09:51 AM
*/
public class PhoneNumberUtil {
// regular expression for number format
public static final String NUMBER_FORMAT_REGEX = "+%d(%s)%s-%s-%s";
/**
* <p>
* Format a phone number.
* </p>
*
* @param originalNumber
* @param countryCode
* @return
*/
public static String getPhoneNumber(int originalNumber, int countryCode) {
String originalStr = String.format("%010d", originalNumber);
StringBuffer buf = new StringBuffer();
Formatter fmt = new Formatter(buf);
fmt.format(NUMBER_FORMAT_REGEX, countryCode, originalStr.substring(0, 3), originalStr.substring(3, 6), originalStr.substring(6, 8),
originalStr.substring(8));
fmt.close();
return buf.toString();
}
public static void main(String[] args) {
int phoneNumber = 501234567;
int countryCode = 38;
String result = PhoneNumberUtil.getPhoneNumber(phoneNumber, countryCode);
System.out.println(result);
}
}