Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从字符串中获取数字值,并使用for循环将其转换为int?_Java - Fatal编程技术网

Java 如何从字符串中获取数字值,并使用for循环将其转换为int?

Java 如何从字符串中获取数字值,并使用for循环将其转换为int?,java,Java,我想创建一个循环,将字符串值转换为int值。 下面是一个示例字符串2012.12.31 我想要的是在循环到达“点”后杀死它 我们将假设所有字符串中只包含2“。”。这是我开始的,我被卡住了。有人能告诉我什么可以用吗? 我是一名java学习者,所以我甚至不知道本例中可以使用的所有系统命令。下面是我想如何完成它 DateSettings (String A){ int YYYY, MM, DD; for (int i=0; i<A.indexOf('.'); i++);{

我想创建一个循环,将字符串值转换为int值。 下面是一个示例字符串
2012.12.31
我想要的是在循环到达“点”后杀死它 我们将假设所有字符串中只包含2“。”。这是我开始的,我被卡住了。有人能告诉我什么可以用吗? 我是一名java学习者,所以我甚至不知道本例中可以使用的所有系统命令。下面是我想如何完成它

DateSettings (String A){
    int YYYY, MM, DD;

    for (int i=0; i<A.indexOf('.'); i++);{
        YYYY = A[i];
    }

}
DateSettings(字符串A){
年月日;
对于(inti=0;i,有一个类(
java.text.simpleDataFormat
)为您解析字符串日期

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 collect=Pattern.compile(“\\”)
.splitAsStream(sDate1)
.map(整数::parseInt)
.collect(Collectors.toList());
有一个类(
java.text.simpleDataFormat
)为您解析字符串日期

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 collect=Pattern.compile(“\\”)
.splitAsStream(sDate1)
.map(整数::parseInt)
.collect(Collectors.toList());
您可以使用子字符串:

String yearString = A.substring(0,A.indexOf('.'));
int yyyy = Integer.parseInt(yearString);//will error if the string isn't only numbers.
您可以使用子字符串:

String yearString = A.substring(0,A.indexOf('.'));
int yyyy = Integer.parseInt(yearString);//will error if the string isn't only numbers.
我会和你一起去

此外,在循环之后还有一个
,这可能会导致问题,另外还有一个事实,就是您没有更新我将使用的字符串



此外,在循环之后有一个
,这可能会导致问题,另外还有一个事实,即您没有更新字符串在
for
循环之后的这个分号将是痛苦的;)@gonczor实际上,这不会编译,因为变量
i
在循环范围之外使用;)(如果不提及在
字符串上使用
[]
for
循环偏执后面的这个分号将是痛苦的;)@gonczor实际上,这不会编译,因为变量
i
在循环范围之外使用;)(不提及
[]
字符串上
OP的格式特别带有句点
,因此我不确定是否有使用句点的格式…@Itamagreen感谢您的建议正确,不要回答问题,但这当然是最简单的解决方案;)@AxelH谢谢,我也这么想:))所以我用
Pattern.compile(“\\”)添加了另一个答案
好吧,
拆分
在这种情况下更简单。我相信流有点可怕;)我也不太了解这些,我正在学习更频繁地使用它们。这里,有一个+;)OP的格式特别带有句点
,所以我不确定是否有使用这种格式的…@Itamagreen谢谢你的建议正确,不是吗我没有真正回答这个问题,但这当然是最简单的解决方案;)@AxelH谢谢,我也在想同样的事情:))所以我用
Pattern.compile(\\)添加了另一个答案
好吧,
拆分
在这种情况下更简单。我相信流有点可怕;)我也不太了解这些,我正在学习更频繁地使用它们。这里,有一个+;)正如注释中所说,
会阻止代码编译,因为
不会出现在那个块语句中谢谢你的帮助,t他的答案似乎是最好的,因为它很简单,不需要循环cheers,正如评论中所说,
将阻止代码编译,因为
i
将不存在于该块语句中感谢您的帮助,这个答案似乎是最好的,因为它很简单,不需要循环cheers