Hei
funkkari yhtaPitkat ei toimi, errorina sanoo, että cannot find symbol, ja virhe johtuu tuosta merkkijonon pituutta tutkivasta .length-jutusta.
Aikaisemmissa koodeissa .length on toiminut moitteetta mm. int[] taulukon koon tutkinnassa, mutta nyt String-tyypeillä ei toimi?
Koodi listattuna:(yksinkertainen koodi niin ei ole hirveesti kommattu)
import java.util.*;
public class YhtaPitkat {
/**
* Testaa metodin yhtaPitkat() toimintaa.
*/
public static void main(String[] args) {
String[] testi = {"aa", "bb", "ccc", "ddd", "yyy", "eeee", "ffff" };
String[] testitulos = yhtaPitkat(testi, "xxxx");
for (int i = 0; i < testitulos.length; i++) {
System.out.println(testitulos[i]);
}
}
/**
* Palauttaa uuden taulukon, jossa on
* viittaukset kaikkiin vertailtavan kanssa
* yhtä pitkiin merkkijonot-taulukon alkioihin.
*
* Alkuehto: merkkijonot != null & vertailtava != null
*/
public static String[] yhtaPitkat (String[] merkkijonot, String vertailtava) {
String[] ratkaisu;
int laskuri = 0;
for (int i = 0; i < merkkijonot.length; i++) {
if (merkkijonot[i].length == vertailtava.length) {
merkkijonot[i] = ratkaisu[laskuri]; laskuri++;
}
}
return ratkaisu;
}
}EDIT: Kokeilin myös .count mutta sillä saan errorin: count has private access in java.lang.String
Koitas laittaa tyhjät sulut vielä perään kun kerta funktiokutsusta on kyse. Eli .length()
TsaTsaTsaa kirjoitti:
Koitas laittaa tyhjät sulut vielä perään kun kerta funktiokutsusta on kyse. Eli .length()
Joo kiitos, tällä ja parilla muulla pikkukikalla saatiin toimimaan :)
lainaus:
merkkijonot[i].length
'merkkijonot' on taulukko String-olioita, joten sillä on julkinen kenttä 'public final int length' kuten kaikilla taulukoilla.
'merkkijonot[i]' on String-olio (merkkijonot-taulukon indeksissä i). String-luokan rajapinta on sivulla http://java.sun.com/javase/6/docs/api/java/lang/
Aihe on jo aika vanha, joten et voi enää vastata siihen.