删除特殊符号/分隔符例如点,逗号, - ,int out
问题描述:
我想让这个人在他/她的生日的日期写下来,之后我想将它与pi的数量进行比较。 但我希望程序是灵活的。因此,日期不应该像 daymonthyear(13091975),但也像day.month.year(13.09.1975)或像日 - 月 - 年(13-09-1975) 我已经找到了一个想法,但它不做工删除特殊符号/分隔符例如点,逗号, - ,int out
String sep = "";
String geb = nf_datum.getText();
geb = geb.replaceAll(".", Matcher.quoteReplacement(sep));
我发现这个想法用“的replaceAll”在这里:replaceAll "/" with File.separator 我希望有人能帮助我吗?
答
使用java8你可以得到的字符串,并定义一个DateTimeFormatter,这会给您可以灵活地解析字符串转换成LOCALDATE的,你不需要照顾字符串如何“看起来像”,之后你会得到LOCALDATE的对象,从中可以获取的年,月,日
String geburtstag = "-";
DateTimeFormatter formatter = DateTimeFormatter
.ofPattern("[ddMMyyyy]" + "[ddMMyyyy]" + "[dd.MM.yyyy]" + "[dd-MM-yyyy]");
// case1
geburtstag = "23.06.2017";
LocalDate ldt = LocalDate.parse(geburtstag, formatter);
System.out.println("Year: " + ldt.getYear());
System.out.println("Month: " + ldt.getMonthValue());
System.out.println("Day: " + ldt.getDayOfMonth());
// case2
geburtstag = "23062017";
ldt = LocalDate.parse(geburtstag, formatter);
System.out.println("Year: " + ldt.getYear());
System.out.println("Month: " + ldt.getMonthValue());
System.out.println("Day: " + ldt.getDayOfMonth());
// case3
geburtstag = "23-06-2017";
ldt = LocalDate.parse(geburtstag, formatter);
System.out.println("Year: " + ldt.getYear());
System.out.println("Month: " + ldt.getMonthValue());
System.out.println("Day: " + ldt.getDayOfMonth());
我不舒尔你如何的问题是指:d,但它是一个GUI和nf_datum是多少场,后来我把数字填进一个数组 – Jana
你的java版本是什么?你可以使用Java 8吗? –
当你说“它不工作” - 它以什么方式不起作用?你得到一个错误,或只是不是你期望的输出?一般来说,试图编写自己的代码来处理日期解析和格式化逻辑是一个非常糟糕的主意; Java内置许多不同的实用程序以帮助您完成工作。我建议你看一下文档,从这里开始(https://docs.oracle.com/javase/tutorial/i18n/format/dateintro.html),看看Java会免费给你什么。 – DaveyDaveDave