Hei!
Olen tekemässä pientä ohjelmaa joka taivuttaa sanoja jotka päätyy joko -aa tai -ää.
Nuo -aa päättyvät sanat olen etsinyt sana.endsWith-komenolla.
Mutta miten toimia skandien kanssa?
Olen yrittänyt komentoa sana.endsWith ("\u00E4\u00E4"), mutta tämä ei toimi?
Ohjelma ilmoittaa ettö end.With-komentoa ei voi käyttää.
Skandien käyttö harjoituksessa
7
401
Vastaukset
- .........
String sana = "kjdkjdä";
if(sana.endsWith("ä")){
System.out.println("joo");
} - ööööääääää
Se toimii jos ä on koodattu koodilla: "\u00E4". Kokeile vaikka muotoa "\u201E\u201E" tai "\u0084\u0084", jos vaikka jompikumpi niistä toimisi. Se millä kirjaimellä ä on koodattu riippuu merkistöstä ja editorista. Laita koodisi tulostamaan kyseisen kirjaimen koodi näytölle, niin saat poimittua sen siitä. Esim. jos merkkijono nimeltä "jono" päättyy ä -kirjaimeen, niin voit tulostaa silloin kyseisen kirjaimen koodin näytölle seuraavasti:
System.out.print((int) jono.charAt(jono.length()-1));- ööööääääää
Jos haluat olla varma, että ohjelma toimii vaikka teksti on jollakin muulla koodauksella, niin silloin kannattaa laittaa eri vaihtoedot OR lauseella
if (jono.endsWith("\u00E4\u00E4") || jono.endsWith("\u201E\u201E"))
{
}
On niitä varmaan muitakin kun nuo kaksi, riippuen mitä merkistöä käyttää. Nuo koodit sain Windows puolelta ja DOS puolelta. Esim. alla oleva ohjelma perus DOS editorilla tehtynä ja sen jälkeen käännettynä, tulostaa ruudulle 8222 (eli "\u201e"), kun taas Windows puoella tehtynä ja käännettynä tulostuu ruutuun 228 (eli "\u00E4")
--- ALKAA ---
public class Esimerkki {
public static void main(String[] args) {
System.out.println((int) "ä".charAt(0));
}
}
--- LOPPUU --- - Myypii
ööööääääää kirjoitti:
Jos haluat olla varma, että ohjelma toimii vaikka teksti on jollakin muulla koodauksella, niin silloin kannattaa laittaa eri vaihtoedot OR lauseella
if (jono.endsWith("\u00E4\u00E4") || jono.endsWith("\u201E\u201E"))
{
}
On niitä varmaan muitakin kun nuo kaksi, riippuen mitä merkistöä käyttää. Nuo koodit sain Windows puolelta ja DOS puolelta. Esim. alla oleva ohjelma perus DOS editorilla tehtynä ja sen jälkeen käännettynä, tulostaa ruudulle 8222 (eli "\u201e"), kun taas Windows puoella tehtynä ja käännettynä tulostuu ruutuun 228 (eli "\u00E4")
--- ALKAA ---
public class Esimerkki {
public static void main(String[] args) {
System.out.println((int) "ä".charAt(0));
}
}
--- LOPPUU ---Hei!
Kiitos antamasi juttu toimi, mutta nyt minulla on uusi ongelma samassa ohjelmassa.
Yritin laittaa ohjelman alkuun sellaisen rajoitteen, että sanan täytyy olla vähintään neljä kirjainta pitkä, mutta koodissa on koko ajan ongelmia.
import java.util.Scanner;
import java.lang.String;
public class taivutus1 {
public static void main (String[] args)
{
//muuttujien määrittely
String infinitiivi;
//otetaan scanner toiminto käyttöön
Scanner lukija = new Scanner (System.in);
//pyydetään käyttäjää syöttämään verbin infinitiivi
System.out.println("Syota verbin infinitiivi:");
infinitiivi = lukija.next();
System.out.println("\n");
int pituus;
String temp = ""; // alustetaan tyhjällä merkkijonolla
temp = lukija.nextLine(); // luetaan merkkijono
pituus = temp.length(); // kysytään merkkijonon pituus
while (pituus 3) & (infinitiivi.endsWith("aa") || infinitiivi.endsWith("ea") || infinitiivi.endsWith("ia") || infinitiivi.endsWith("oa") || infinitiivi.endsWith("ua") || infinitiivi.endsWith("\u00E4\u00E4") || infinitiivi.endsWith("\u201E\u201E")||infinitiivi.endsWith ("\u0079\u00E4") || infinitiivi.endsWith ("\u0079\u201E")||infinitiivi.endsWith ("\u0065\u00E4") || infinitiivi.endsWith ("\u0065\u201E") ||infinitiivi.endsWith ("\u0069\u00E4") || infinitiivi.endsWith ("\u0069\u201E"))
{
System.out.println("Verbi kuuluu 1. ryhmaan");
}
else
{
System.out.println("Verbi ei kuulu 1. ryhmaan");
}
}
} - jaavake
Myypii kirjoitti:
Hei!
Kiitos antamasi juttu toimi, mutta nyt minulla on uusi ongelma samassa ohjelmassa.
Yritin laittaa ohjelman alkuun sellaisen rajoitteen, että sanan täytyy olla vähintään neljä kirjainta pitkä, mutta koodissa on koko ajan ongelmia.
import java.util.Scanner;
import java.lang.String;
public class taivutus1 {
public static void main (String[] args)
{
//muuttujien määrittely
String infinitiivi;
//otetaan scanner toiminto käyttöön
Scanner lukija = new Scanner (System.in);
//pyydetään käyttäjää syöttämään verbin infinitiivi
System.out.println("Syota verbin infinitiivi:");
infinitiivi = lukija.next();
System.out.println("\n");
int pituus;
String temp = ""; // alustetaan tyhjällä merkkijonolla
temp = lukija.nextLine(); // luetaan merkkijono
pituus = temp.length(); // kysytään merkkijonon pituus
while (pituus 3) & (infinitiivi.endsWith("aa") || infinitiivi.endsWith("ea") || infinitiivi.endsWith("ia") || infinitiivi.endsWith("oa") || infinitiivi.endsWith("ua") || infinitiivi.endsWith("\u00E4\u00E4") || infinitiivi.endsWith("\u201E\u201E")||infinitiivi.endsWith ("\u0079\u00E4") || infinitiivi.endsWith ("\u0079\u201E")||infinitiivi.endsWith ("\u0065\u00E4") || infinitiivi.endsWith ("\u0065\u201E") ||infinitiivi.endsWith ("\u0069\u00E4") || infinitiivi.endsWith ("\u0069\u201E"))
{
System.out.println("Verbi kuuluu 1. ryhmaan");
}
else
{
System.out.println("Verbi ei kuulu 1. ryhmaan");
}
}
}Ensin kysytään infinitiivi, sitten toinen merkkijono temp, jota ei käytetä mihinkään.
Sitten verrataan temp-merkkijonon pituutta ja infiniitivin loppua luokan päättelyyn???? - öööööööäääääää
Myypii kirjoitti:
Hei!
Kiitos antamasi juttu toimi, mutta nyt minulla on uusi ongelma samassa ohjelmassa.
Yritin laittaa ohjelman alkuun sellaisen rajoitteen, että sanan täytyy olla vähintään neljä kirjainta pitkä, mutta koodissa on koko ajan ongelmia.
import java.util.Scanner;
import java.lang.String;
public class taivutus1 {
public static void main (String[] args)
{
//muuttujien määrittely
String infinitiivi;
//otetaan scanner toiminto käyttöön
Scanner lukija = new Scanner (System.in);
//pyydetään käyttäjää syöttämään verbin infinitiivi
System.out.println("Syota verbin infinitiivi:");
infinitiivi = lukija.next();
System.out.println("\n");
int pituus;
String temp = ""; // alustetaan tyhjällä merkkijonolla
temp = lukija.nextLine(); // luetaan merkkijono
pituus = temp.length(); // kysytään merkkijonon pituus
while (pituus 3) & (infinitiivi.endsWith("aa") || infinitiivi.endsWith("ea") || infinitiivi.endsWith("ia") || infinitiivi.endsWith("oa") || infinitiivi.endsWith("ua") || infinitiivi.endsWith("\u00E4\u00E4") || infinitiivi.endsWith("\u201E\u201E")||infinitiivi.endsWith ("\u0079\u00E4") || infinitiivi.endsWith ("\u0079\u201E")||infinitiivi.endsWith ("\u0065\u00E4") || infinitiivi.endsWith ("\u0065\u201E") ||infinitiivi.endsWith ("\u0069\u00E4") || infinitiivi.endsWith ("\u0069\u201E"))
{
System.out.println("Verbi kuuluu 1. ryhmaan");
}
else
{
System.out.println("Verbi ei kuulu 1. ryhmaan");
}
}
}Edellinen vastaaja jo kommentoi muutamaa virhettä. Koska koodi ei suoraan toimi enkä muista kieliopista mitään, niin vaikea kommentoida itse asiaa. Haetko jotain alla olevan kaltaista ratkasua, joka on väsätty koodisi perusteella, ja ainakin kääntyy...
Tuossa kirjoittamassasi koodissa kiinnitin huomiota, että "if (pituus" vertailu lauseessa sulkeita oli väärä määrä, ja vertailussa oli käytetty "&" -liitosta vaikka "&&" -liitos olisi ollut oikeampi. Lisäksi ohjelmasi voi jäädä jumiin, tulostaen koko ajan viestiä "Antamasi merkkijono ei ole.." -viestiä. Lisäksi String:n importtaus on turhaa, sillä sen pitäisi tulla automaattisesti.
--- ALKAA ---
import java.util.Scanner;
public class Taivutus {
public static boolean tarksitaPääte(String sana, String[] päätteet) {
for (int i = 0; i < päätteet.length; i )
if (sana.endsWith(päätteet[i]))
return true;
return false;
}
public static boolean onkoRyhmän1Verbi(String infinitiivi) {
final String[] sallitutPäätteet = {
"aa", "ea", "ia", "oa", "ua", "\u00E4\u00E4",
"\u201E\u201E", "\u0079\u00E4", "\u0079\u201E",
"\u0065\u00E4", "\u0065\u201E", "\u0069\u00E4",
"\u0069\u201E"
};
return tarksitaPääte(infinitiivi, sallitutPäätteet);
}
public static void main (String[] args)
{
String infinitiivi;
Scanner lukija = new Scanner (System.in);
do {
System.out.print("Syota verbin infinitiivi: ");
infinitiivi = lukija.nextLine();
if (infinitiivi.length() - Myypii
öööööööäääääää kirjoitti:
Edellinen vastaaja jo kommentoi muutamaa virhettä. Koska koodi ei suoraan toimi enkä muista kieliopista mitään, niin vaikea kommentoida itse asiaa. Haetko jotain alla olevan kaltaista ratkasua, joka on väsätty koodisi perusteella, ja ainakin kääntyy...
Tuossa kirjoittamassasi koodissa kiinnitin huomiota, että "if (pituus" vertailu lauseessa sulkeita oli väärä määrä, ja vertailussa oli käytetty "&" -liitosta vaikka "&&" -liitos olisi ollut oikeampi. Lisäksi ohjelmasi voi jäädä jumiin, tulostaen koko ajan viestiä "Antamasi merkkijono ei ole.." -viestiä. Lisäksi String:n importtaus on turhaa, sillä sen pitäisi tulla automaattisesti.
--- ALKAA ---
import java.util.Scanner;
public class Taivutus {
public static boolean tarksitaPääte(String sana, String[] päätteet) {
for (int i = 0; i < päätteet.length; i )
if (sana.endsWith(päätteet[i]))
return true;
return false;
}
public static boolean onkoRyhmän1Verbi(String infinitiivi) {
final String[] sallitutPäätteet = {
"aa", "ea", "ia", "oa", "ua", "\u00E4\u00E4",
"\u201E\u201E", "\u0079\u00E4", "\u0079\u201E",
"\u0065\u00E4", "\u0065\u201E", "\u0069\u00E4",
"\u0069\u201E"
};
return tarksitaPääte(infinitiivi, sallitutPäätteet);
}
public static void main (String[] args)
{
String infinitiivi;
Scanner lukija = new Scanner (System.in);
do {
System.out.print("Syota verbin infinitiivi: ");
infinitiivi = lukija.nextLine();
if (infinitiivi.length()Kiitos teille molemmille vastauksista! Pääsin niiden avulla oikeille jäljille :)
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Voitasko leikkiä jotain tunnisteleikkiä?
Tietäisi ketä täällä käy kaipaamassa.. kerro jotain mikä liittyy sinuun ja häneen eikä muut tiedä. Vastaan itsekin kohta781805Tietysti jokainen ansaitsee
Hän varmasti ansaitsee vain parasta ja sopivinta tietenkin, suon sen onnen hänelle enemmän kuin mielelläni. Aika on nyt181689- 161514
En voi sille mitään
Tulen niin pahalle tuulelle tästä paikasta nykyisin. Nähnyt ja lukenut jo kaiken ja teidän juttu on samaa illasta toisee12119450+ naiset kyl
Lemottaa sillille mut myös niitte kaka lemottaa pahlle ku kävin naiste veskis nuuhiin191193Välitän sinusta mies
Kaikki mitä yritin kertoa tänään ei mennyt ihan putkeen..Joka jäi jälkeenpäin ajateltuna suoraan sanottuna harmittaa aiv61182hieman diabetes...
Kävin eilen kaverin kanssa keskusapteekissa kun on muutama kuukausi sitten tullut suomesta ja oli diabetes insuliinit lo121136Annetaanko olla vaan
Siinä se, tavallaan kysymys ja toteamuskin. Niin turhaa, niin rikkovaa. On niin äärettömän tärkeä, ja rakas olo.. N291131Miten joku voi käyttää koko elämänsä
siihen että nostelee täällä vanhoja ketjuja ja troIIaa niihin jotain linkkiä mitä kukaan ei avaa? Ihmisellä ei ole mitää61119Pakkoruotsi on leikkikieli, jota ei ole tarkoituskaan osata
Pakkoruotsi on leikkikieli. Ennen leikkikieltä sanottiin siansaksaksi, sitten keksittiin tilalle pakkoruotsi. Pakkoruot71104