【发布时间】:2014-04-10 19:07:43
【问题描述】:
我想输入一个像 ciphercloud 这样的字符串,范围是 3 到 6,然后它会显示为 pher***。只有当您将范围作为字符给出时,范围才必须是整数从不接受,范围也必须是正整数,不能是负数。 通过满足所有这些我这样编码
class maskchar
{
public static void main(String args[])
{
String str = args[0];
int start = Integer.parseInt(args[1]);
int end = Integer.parseInt(args[2]);
char[] str1 = str.toCharArray();
int len = str1.length;
if((start >= 0 && start <= len) && (end >= 0 && end <= len))
{
for(int i = 0; i < start - 1; i++)
{
System.out.print("*");
}
for(int j = start - 1; j < end; j++)
{
System.out.print(str1[j]);
}
for(int k = end; k < len; k++)
{
System.out.print("*");
}
}
}
}
每当我们运行此代码时,它都会显示预期的输出,但如果我将字符作为起始范围传递,它将通过异常,即 NumberFormatException 我如何处理该异常以及如何使其更灵活。
【问题讨论】:
-
它显然会抛出一个
NumberFormatException,因为你在一个字符上调用了parseInt函数(这显然不是一个int)。如果要使用字符,则需要捕获异常并假设它已接收到字符,或者在调用parseInt函数之前确定参数是否为整数。 -
@ifLoop 编码风格是主观的,没有对错之分。不要编辑人们的帖子以根据您的个人喜好更改编码样式。你的修改不应该被批准,所以我会回滚。
-
@Alex K。如果您以后坚持要进行编辑审核,请阅读上述评论。
-
@Dhara 如果您以后坚持要进行编辑审核,请阅读以上评论。
-
@Ashwini Agarwal 如果您以后坚持要进行编辑审核,请阅读以上评论。
标签: java