Java 如何从字符串中获取数字值,并使用for循环将其转换为int?
我想创建一个循环,将字符串值转换为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++);{
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