Java 从字符串中获取数字

Java 从字符串中获取数字,java,Java,我有一个转换器,用于从组合框中获取或设置标签: public class GroupConverter extends StringConverter<ListGroupsObj> { @Override public String toString(ListGroupsObj obj) { return obj.getGroupId() + " - " + obj.getGroupName(); } @Override

我有一个转换器,用于从组合框中获取或设置标签:

public class GroupConverter extends StringConverter<ListGroupsObj>
{

    @Override
    public String toString(ListGroupsObj obj)
    {
        return obj.getGroupId() + " - " + obj.getGroupName();
    }

    @Override
    public ListGroupsObj fromString(String obj)
    {

        Scanner fi = new Scanner(obj);
        //anything other than alphanumberic characters, 
        //comma, dot or negative sign is skipped
        fi.useDelimiter("[^\\p{Alnum},\\.-]");
        while (true)
        {
            if (fi.hasNextInt()){
                //System.out.println("Int: " + fi.nextInt());
                return ListGroupsObj.newInstance().groupId(fi.nextInt());
            }
            break;                    
        }

        //TODO when you type for example "45 - NextGroup" you want to take only tyhe number"
        return ListGroupsObj.newInstance().groupId(fi.nextInt());
    }

}
公共类GroupConverter扩展StringConverter
{
@凌驾
公共字符串到字符串(ListGroupsObj obj)
{
返回obj.getGroupId()+“-”+obj.getGroupName();
}
@凌驾
公共列表组SOBJ fromString(字符串对象)
{
扫描仪fi=新扫描仪(obj);
//除了字母数字字符以外的任何字符,
//跳过逗号、点或负号
fi.useDelimiter(“[^\\p{Alnum},\\\.-]”);
while(true)
{
if(fi.hasNextInt()){
//System.out.println(“Int:+fi.nextInt());
返回ListGroupsObj.newInstance().groupId(fi.nextInt());
}
打破
}
//TODO当您键入例如“45-NextGroup”时,您只想输入数字
返回ListGroupsObj.newInstance().groupId(fi.nextInt());
}
}
例如,当我键入“45-NextGroup”时,我只想从值中获取数字。您能帮我实现这一点吗?

试试这个

String s="45 - Next";// the string from the box
int num=Integer.parseInt(s.split("-")[0].trim());
如果obj.getGroupId()返回字符串,您只需执行
Integer.parseInt(obj.getGroupId());
类似于
        String s="45 - Next";
        String reg = "[0-9]+";
        Pattern pattern = Pattern.compile(reg);
        Matcher matcher = pattern.matcher(s);
        while(matcher.find()) {
            String numString = matcher.group();
            int num = Integer.parseInt(numString);
            System.out.println(num);
        }