2013-12-22 2 views
-2

У меня есть этот конвертер, который используется для получения или установить метку в поле со списком:Получить номер из строки

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()); 
    } 

} 

Например, когда я типа «45 - NextGroup» Я хотел бы получить только номер из значения. Можете ли вы помочь мне реализовать это?

+0

если obj.getGroupId() возвращает строку, вы можете просто сделать 'Integer.parseInt (obj.getGroupId());' – Kon

+0

Аналогично HTTP: // StackOverflow .com/questions/2367381/extract-numbers-from-a-string-java – MariuszS

+0

Я обновил код. –

ответ

1

попробовать этот

String s="45 - Next";// the string from the box 
int num=Integer.parseInt(s.split("-")[0].trim()); 
1
 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); 
     } 
Смежные вопросы