Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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中将字符串转换为int_Java_Regex_String - Fatal编程技术网

在java中将字符串转换为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'

我有一个字符串,里面有一个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' && 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