在java中将字符串转换为int
我有一个字符串,里面有一个int值。我只想从字符串中提取int值并打印在java中将字符串转换为int,java,regex,string,Java,Regex,String,我有一个字符串,里面有一个int值。我只想从字符串中提取int值并打印 String str="No. of Days : 365"; String daysWithSplChar = str.replaceAll("[a-z][A-Z]","").trim(); char[] ch = daysWithSplChar.toCharArray(); StringBuffer stb = new StringBuffer(); for(char c : ch) { if(c >= '0'
String str="No. of Days : 365";
String daysWithSplChar = str.replaceAll("[a-z][A-Z]","").trim();
char[] ch = daysWithSplChar.toCharArray();
StringBuffer stb = new StringBuffer();
for(char c : ch)
{
if(c >= '0' && c <= '9')
{
stb.append(c);
}
}
int days = Integer.ParseInt(stb.toString());
String str=“天数:365”;
字符串daysWithSplChar=str.replaceAll(“[a-z][a-z]”,“”)。trim();
char[]ch=daysWithSplChar.toCharArray();
StringBuffer stb=新的StringBuffer();
for(字符c:ch)
{
如果(c>='0'&&c尝试String.replaceAll
String str = "No. of Days : 365";
str = str.replaceAll(".*?(\\d+).*", "$1");
System.out.println(str);
你会得到
365
这将使您获得整数另一种使用regex的方法(而不是@EvgeniyDorofeev建议的方法),它更接近您所做的:
str.replaceAll("[^0-9]",""); // give you "365"
也就是说,用空字符串替换所有非0-9的字符(或者,换言之,删除所有非数字字符)
这是同样的意思,只是口味的问题,哪一个更适合你:
str.replaceAll("\\D",""); // give you "365"
下面的代码为您提供整数值
String str = "No. of Days : 365";
str = str.replaceAll(".*?(\\d+)", "$1");
System.out.println(str);
Integer x = Integer.valueOf(str);//365 in integer type
System.out.println(x+1);//output 366
可能对的重复项感兴趣。在JAVA@LuiggiMendoza中,将字符串转换为Int的最佳方法似乎他已经知道如何获取值。@AndroidKiller,@psr$1
=第一个捕获组(~对括号),这意味着用组1中的内容替换所有内容(圆括号中的expr)答案有点问题。OP说字符串中会有一个整数,但没有说它总是在字符串的末尾。因此,如果字符串是这样的话,这个正则表达式就不起作用了:“有365天”甚至可以用str.replaceAll(“\\D+”,“”)进行优化你的答案的关键部分与@EvgeniyDorofeev的答案是一样的。我有一个将字符串转换为整数的封面。整数x=integer.valueOf(str);int y=integer.parseInt(str);显然OP在将字符串转换为整数方面没有问题,因为他有一个基本正确的int days=integer.parseInt(stb.toString())
在他的问题中,我看不出你和他的方式有什么不同,都使用Integer.parseInt().最大的区别是提取只包含数字的字符串,你只是从另一个答案中复制…复制意味着什么?.m没有强迫任何人使用我的代码或接受我的答案。上面的答案只是提取整数值。我把转换部分放在了这里,而不是那个答案。
String str = "No. of Days : 365";
str = str.replaceAll(".*?(\\d+)", "$1");
System.out.println(str);
Integer x = Integer.valueOf(str);//365 in integer type
System.out.println(x+1);//output 366