Liczby w łańcuchu znaków java

Liczby w łańcuchu znaków java
Gosia Topij
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
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ą:

Kopiuj
        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?

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Gosia Topij
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Liczby typu int

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Kopiuj
	    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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.