Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Java zadatak - pomoc

[es] :: Java :: Java zadatak - pomoc

[ Pregleda: 1992 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

nigth rider
Ilija Vucetic
Student

Član broj: 272951
Poruke: 12
95.180.59.*



Profil

icon Java zadatak - pomoc04.12.2011. u 23:55 - pre 149 meseci
Potrebna mi je pomoc pri resavanju zadatka, prvo cu staviti zadatak pa objasniti gde je problem.


ZADATAK:

Napisati program koji u fajlu tekst.txt pronalazi sve reči pisane početnim velikim slovom i upisuje ih u novi fajl (caps.txt) zajedno sa brojem linije u kojoj se pojavljuju. Redovi u fajlu caps.txt treba da budu u obliku <rec><tab><brojLinije>, npr:
Milos 1
Obilic 1
Beogradu 3

Evo deo mog koda.

Code:

import java.io.*;
import java.util.*;
import java.util.ArrayList;


public class StartsaVelikoSlovo {
    
    public static ArrayList<String> reci (String linija) 
    {
        ArrayList<String>lista = new ArrayList<String>();
        
        String[] s;
        s=linija.split(" ");
        
        for(int i=0;i<s.length;i++)
        {
            
            lista.add(s[i]);
        }
        return lista;
        
    }
    
}


Evo i izvrsnog dela.


Code:

import java.io.*;
import java.util.*;
import java.util.ArrayList;


public class StartVelikoTest {
    public static void main(String[] args) throws FileNotFoundException, IOException {
        
        ArrayList<String>lista = new ArrayList<String>();
        ArrayList<String>veliki = new ArrayList<String>();
        String tekst=" ";
        
        BufferedReader fajl = new BufferedReader(new FileReader("tekst.txt"));
        
        while(true)
        {
            
            tekst+=fajl.readLine()+" ";
            if(fajl.readLine()==null) break;
        }
       
        lista = StartsaVelikoSlovo.reci(tekst);
        
        for(String s : lista)
        {
           char c = s.charAt(0);                       // ovde nastaje problem
           if(Character.isUpperCase(c))
                veliki.add(s);
           
        }
        
        for(String s : veliki)
            System.out.println(s);
        
      
    }   
    
}
s

Molio bih za p pomoc u delu kada iz liste ucitavam pojedinacne stringove/reci da mi neko kaze kako da proverim da li je prvo slov veliko ja sam pokusao na gore navedeni nacin ali nece .

Drugi deo zadatka da upisem u fajl mi nije problem samo ovaj.
Hvala.
 
Odgovor na temu

Texas Instruments

Član broj: 227540
Poruke: 272
95.180.72.*



+61 Profil

icon Re: Java zadatak - pomoc05.12.2011. u 00:23 - pre 149 meseci
Dešava se da imaš prazan string, "" za koji se poziva metoda charAt.
Code:

    public char charAt(int index) {
        if ((index < 0) || (index >= count)) {
            throw new StringIndexOutOfBoundsException(index);
        }
        return value[index + offset];
    }

Dakle baca exception StringIndexOutOfBoundsException. Ubaci proveru da li je taj string s prazan string da zaobiđeš tu situaciju.
 
Odgovor na temu

biske86
Ivan Biševac
Zubin Potok

Član broj: 62435
Poruke: 979
*.dynamic.isp.telekom.rs.

Sajt: biske.rs


+39 Profil

icon Re: Java zadatak - pomoc05.12.2011. u 00:57 - pre 149 meseci
Ja sam upravo debagovao tvoj program sa nekim tekstom koji sam ubacio i kada se desi prekid ArrayList pod nazivom lista ima prvi element koji je prazan i kad pozoves getCharAt(0) onda se ispaljuje izuzetak. To piše u dokumentaciji:
Citat:
public class StringIndexOutOfBoundsException
extends IndexOutOfBoundsException
Thrown by String methods to indicate that an index is either negative or greater than the size of the string. For some methods such as the charAt method, this exception also is thrown when the index is equal to the size of the string.

 
Odgovor na temu

[es] :: Java :: Java zadatak - pomoc

[ Pregleda: 1992 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.