gpt4 book ai didi

java - 简单的 Java 异常问题

转载 作者:行者123 更新时间:2023-12-04 21:28:04 25 4
gpt4 key购买 nike

嘿,这只是类里面的一个简单练习,我决定尝试将异常放入其中。根据本书,此问题的输入应采用以下格式:2009 年 4 月 19 日我试图处理我的异常(exception)情况是确保用户(无论谁评分)遵循这些参数,以便我的程序正常工作。这看起来不错吗?我还能做得更好吗?

编辑:感谢您的及时答复!我知道我有很多东西要学,但希望有一天我有足够的能力在这里回答问题。干杯

import jpb.*;

public class ConvertDate {
public static void main(String[] args) {
try{
SimpleIO.prompt("Enter date to be converted: ");
String bam = SimpleIO.readLine();
bam = bam.trim().toLowerCase();
//empty space is taken off both ends and the entirety is put in lower case
int index1 = bam.indexOf(" ");
int index2 = bam.lastIndexOf(" ");
int index3 = bam.indexOf(",");
/*critical points in the original string are located using indexing to divide and conquer
in the next step*/
String month = bam.substring(0,index1);
String up = month.substring(0, 1).toUpperCase();
String rest = month.substring(1,index1);
String day = bam.substring(index1, index3).trim();
String year = bam.substring(index2+1);
//now all the pieces are labeled and in their correct cases
System.out.println("Converted date: " +day +" " +up +rest +" " +year);
//everything comes together so perfectly
} catch(StringIndexOutOfBoundsException e){
System.out.println("best type that in like the book does on page 125...");}
}
}

最佳答案

这里有一些想法。这些只是我的意见,所以如果你愿意,请对它们持保留态度或完全忽略:

  1. 我不知道 import 语句在做什么,但可以在不引入对库的依赖的情况下完成所有这些操作。您应该了解依赖项的影响。
  2. 讨厌您添加的那种评论。我知道学生和教授喜欢它们,但作为一名专业人士,我发现它们的信息量不如代码本身,只会增加困惑。
  3. 我不会将所有这些逻辑都放在一个 main 方法中。我会将它封装到一个类或静态方法中,以便我可以重用它。这是一个无用的学生练习。
  4. 您测试了“蓝天”快乐之路,一切正常。我建议查看 JUnit 之类的东西,并开始考虑边缘和异常情况。尝试更多测试以破坏您的方法的输入。它会改善这种方式。您当前的方法保证您的代码会遇到其他容易想到的情况(例如,传递一个不是月-日-年的字符串)。

下面是我可能会写同样的东西:

import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.text.ParseException;

public class ConvertDate
{
private static final DateFormat DEFAULT_FORMAT;

static
{
DEFAULT_FORMAT = new SimpleDateFormat("MM-dd-yyyy");
DEFAULT_FORMAT.setLenient(false);
}

public static void main(String[] args)
{
for (String dateString : args)
{
try
{
Date date = DEFAULT_FORMAT.parse(dateString);
System.out.println(date);
}
catch (ParseException e)
{
System.out.println("invalid date string: " + dateString);
}
}
}
}

关于java - 简单的 Java 异常问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3835525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com