如何从String获取数值,并使用for循环将它们转换为int?

时间:2017-05-19 11:39:38

标签: java

我想创建一个循环,它将获取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];
    }

}

3 个答案:

答案 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

此外,循环后有;,这可能会导致问题,以及您没有更新字符串的事实