webForumDet fria alternativet

Räkna delsträngar i en sträng

Java

6 svar · 376 visningar · startad av janfang

Medlem sedan okt. 200058 inlägg
Frågan#1

Hej,
Jag har en fråga angående att räkna hur många förekomster av "" som finns i en sträng.

Jag har testat med koden nedan, men den fungerar inte som jag har tänkt mig. Den ser test som en sträng. Har ni några tips på hur man kan räkna ut antal i strängen nedan?

        int count = 0;
        String string = "[b]test test[b]";
        StringTokenizer words = new StringTokenizer(string);
        while (words.hasMoreTokens()) {
            String word = words.nextToken();
            if (word.equals("[b]"))
                count++;
        }
Medlem sedan dec. 2000399 inlägg
#2

Kanske detta kan fungera?

        String string = "[b]test test[b]";
        StringTokenizer words = new StringTokenizer(string, "[b]");
        int count = words.countTokens();
Medlem sedan nov. 200238 inlägg
#3

juventus1 skrev:

Kanske detta kan fungera?

        String string = "[b]test test[b]";
        StringTokenizer words = new StringTokenizer(string, "[b]");
        int count = words.countTokens();

Då får man inte med den sista om strängen avslutas med

**```
int ind = string.indexOf("[b]",0);
int count=0;
while(ind != -1)
{
count++;
ind = string.indexOf("[b]",ind+1);
}

Medlem sedan juli 2001228 inlägg
#4

Sätt returnDelims flaggan som true i StringTokenizer så får du ut delimiters också, i det här fallet "**", så är bara att räkna dom sen.

mvh
phonk**

Medlem sedan sep. 2001961 inlägg
#5

Eller så använder man sig av java.util.regexp-paketet...

/Lime

Medlem sedan juni 200010 432 inlägg
#6

Som bara funkar i 1.4:an och uppåt ;)

Medlem sedan sep. 2001961 inlägg
#7

Ja? Och? Varför köra något som är äldre?

/Lime

253 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)