Liczby w łańcuchu znaków java

0

Chcę napisać funkcję, która pobiera tekst i zwraca ten sam tekst ale wszystkie liczby w tym tekście mają być powiększone o jeden. Wiem jak sprawdzić czy dany symbol jest cyfrą:

        for (int i = 0; i < tekst.length(); i++) {
            if (Character.isDigit(tekst.charAt(i))) {
                int znak = (int) tekst.charAt(i);
                znak = znak - '0';
            }
        }

, ale jak zrobić żeby odnajdował całe liczby?

0

Które z poniższych ciągów znaków mają zostać uznane za liczbę:
-123
34.89
34,89
-34.89
66666666666666666666666666666

0

Liczby typu int

0

Poniższe rozwiązanie działa dla nieujemnych liczb typu int

	    Pattern pattern = Pattern.compile("\\d+");
        String s = "55hau234miau324trup666zombi0voodoo";
        StringBuffer result = new StringBuffer("");
        while(true)
        {
		    Matcher m = pattern.matcher(s);
            if(!m.find())
            {
                result.append(s);
                break;
            }
            else
            {
                int start = m.start();
                int end = m.end();
                result.append(s.substring(0,start));
                long nr = Integer.parseInt(s.substring(start,end)) + 1;
                result.append("" + nr);
                s = s.substring(end);
            }
        }

Ujemne liczby typu int są pomniejszane o 1. Poprawienie kodu zostawiam Tobie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1