在字符串用户输入中搜索int

时间:2014-01-16 05:32:02

标签: java string integer string-matching

我目前正在为课程做一个作业,我想知道如何在字符串输入中找到一个整数。到目前为止,在代码中我创建了一种退出循环的方法。请不要给我代码只是给我一些想法。请记住,我对java很新,所以请耐心等待。谢谢。 编辑:我忘了提到字符串输入应该像“woah123”,它应该只找到“123”部分。遗憾

import java.util.Scanner;

public class DoubleTheInt
{
    public static void main(String[] args)
    {
        int EXIT = 0;
        while(EXIT == 0)
        {
            Scanner kbReader = new Scanner(System.in);
            System.out.println("What is your sentence?");
            String sentence = kbReader.next();
            if(sentence.equalsIgnoreCase("exit"))
            {
                break;
            }           
        }
    }
}

5 个答案:

答案 0 :(得分:2)

出于学习目的,你可以做的是遍历整个字符串并仅检查数字。在这种情况下,您还将学习如何在字符串中检查char-by-char,如果将来您可能需要这样,您也将获得该字符串的数字。希望能解决你的问题。

答案 1 :(得分:1)

这是你做的......

 Replace all non numeric characters with empty string using \\D and String.replaceAll function
 Parse your  string (after replacing)  as integer using Integer.parseInt()

在Christian的评论后编辑:

replaceAll() function replaces occurances of particular String (Regex is first argument) with that of the second argument String.. 
\\D is used to select everything except the numbers in the String. So, the above 2 lines combined will give "1234" if your String is "asas1234" . 

Now , Integer.parseInt is used to convert a String to integer.. It takes a String as argument and returns an Integer. 

答案 2 :(得分:0)

由于您没有要求代码,我给您一些建议。

  1. 在字符串方法中使用正则表达式来查找数字并删除所有数字 非数字。

  2. 将字符串解析为整数。

答案 3 :(得分:0)

除非你的任务"是"一个正则表达式的赋值,我建议你用非正则表达方式。即,通过逐字符读取并检查整数或读取字符串并转换为字符数组和处理。

我不确定你的老师打算做什么,但有两种方法 -

  1. 逐字符读取并按ASCII码过滤数字。使用BuffferedReader从标准输入读取。并使用read()方法。通过试验找出数字的ASCII码范围。

  2. 一次读取整个String(使用Scanner或BufferedReader)并查看您可以从String API执行的操作(如可用于String的方法)。

答案 4 :(得分:0)

使用Regular Expression:\ d +

String value = "abc123";
Pattern p = Pattern.compile("(\\d+)");
Matcher m = p.matcher(value);
int i = Integer.valueOf(m.group(1));
System.out.println(i);

输出

123