我想创建一个循环,它将获取String值并将它们转换为int值。
这是一个示例字符串2012.12.31
我想要的是一旦它进入"就杀死循环。"
我们假设所有字符串只包含2"。"在他们中。这是我开始的,我被困住了。有人可以指导我使用什么?
我是一名java学习者,所以我甚至不知道在这种情况下可以使用的所有系统命令。这就是我想要的方式。
DateSettings (String A){
int YYYY, MM, DD;
for (int i=0; i<A.indexOf('.'); i++);{
YYYY = A[i];
}
}
答案 0 :(得分:1)
有一个类(java.text.SimpleDateFormat
)可以为你解析字符串日期。
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class StringToDateExample1 {
public static void main(String[] args)throws Exception {
String sDate1="2016.12.31";
Date date1=new SimpleDateFormat("yyyy.MM.dd").parse(sDate1);
Calendar instance = Calendar.getInstance();
instance.setTime(date1);
System.out.println("Year: " +instance.get(Calendar.YEAR));
System.out.println("Month: " +(instance.get(Calendar.MONTH)+1));
System.out.println("Day: " +instance.get(Calendar.DAY_OF_MONTH));
}
}
输出:
Year: 2016
Month: 12
Day: 31
另一种解决方案是使用Pattern.compile("\\.")
List<Integer> collect = Pattern.compile("\\.")
.splitAsStream(sDate1)
.map(Integer::parseInt)
.collect(Collectors.toList());
答案 1 :(得分:1)
您可以使用子字符串:
String yearString = A.substring(0,A.indexOf('.'));
int yyyy = Integer.parseInt(yearString);//will error if the string isn't only numbers.
答案 2 :(得分:1)
我会选择String.split
String s = "2012.12.31";
String array[] = s.split("\\.");
int year = Integer.parseInt(array[0]);
//and so on
此外,循环后有;
,这可能会导致问题,以及您没有更新字符串的事实