Haluaisin tehdä tämän PHP-koodin Java kielellä.
Minulla on teksti kenttä johon kirjoitan vaikka - Mikko Pete Susanna
Jonka jälkeen explode-funktiolla etsin " ".
Sekoitam valinnat ja for-looppia käyttäen tulostan esim. - Pete Mikko Susanna
if(isset($_POST["submit"])) { $text=$_POST["text"]; $myarray = explode(" ",$text); shuffle($myarray); for($i=0; $i<count($myarray); $i++) { echo($myarray[$i]); echo"<br>"; } }
Toimiiko Javassa homma samalla tavalla eli tuleeko vastaava koodi javassa
public void onClick(View v) {
Tähän!
No, PHP:llä tuo nyt toimii webbipalvelimella, ottaa http-pyynnön vastaan ja vastaa http-sivulla.
Toki myös Javalla voi tehdä weppipalvelinsovelluksia, mutta tuosta onClickistä päätellen olisit ehkä tekemässä jotain muuta.
Kun kerran haluaisit tehdä tuon, niin suosittelen että alat hommiin. Jos jonkun tietyn asian tekeminen ei oppaiden ja dokumentaation lukemisen jälkeenkään luonnistu, niin kysy vaan apuja.
Voisin toki kirjoittaa suoraan Java-koodin joka tekee kysymäsi, mutta silloinhan et pääsisi sitä itse tekemään.
Kyllä, olen tekemässä ihan yksinkertaista android app:iä
Olen etsinyt vastausta jo kaksi päivää internetistä.
Minulle tuo java ei vielä täysin aukea.
Tässä on java-koodini johon olen yrittänyt nyt tuota räveltää pari päivää :)
Olisin erittäin kiitollinen jos voisit näyttää toimivan java-koodin.
import java.util.ArrayList; import java.util.Collections; import java.util.List; import android.app.Activity; import android.media.MediaPlayer; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class Menu extends Activity { EditText textIn; Button btn1; TextView textOut; MediaPlayer buttonMusic; String[] rawData; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); buttonMusic = MediaPlayer.create(Menu.this, R.raw.buttonsound); textIn = (EditText) findViewById(R.id.editText1); btn1 = (Button) findViewById(R.id.button1); textOut = (TextView) findViewById(R.id.editText2); btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { buttonMusic.start(); // TODO Auto-generated method stub String[] rawData; rawData = textIn.getText().toString().split(" "); //List<String> sl = new ArrayList<String>(); //Collections.shuffle(rawData); for (int i = 0; i < rawData.length; i++) { System.out.println(rawData) ; //textOut.setText(rawData[i]) ; } //textOut.setText(textIn.getText().toString()); } }); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); } }
No nyt ei ole android sdk:ta asennettuna, mutta kuvittelisin että jotakuinkin
List<String> sanat = Arrays.asList(textIn.getText().toString().split(" ")); Collections.shuffle(sanat); String tulos = sanat.get(0); for (int i=1; i<sanat.size(); i++) { tulos += " " + sanat.get(i); } textOut.setText(tulos);
Kiitos vastauksesta.
Taisit päivittää vastausta for loopin .length --> size()
Antoikin siitä virheen. Siis aiemmin kun siinä oli .length
Antoi vielä virheen kohdissa
String tulos = sanat[0]; -- viittasi tuohon sanat[0];
ja myös saman tuossa sanat[ i ];
"The type of the expression must be an array type but it resolved to List<String>"
Päivittelin vielä [x] tilalle .get(x), josko nyt toimisi..
Ei ollut mitään jdk:ta koneella miltä postailin, niin en voinut testata ja jäi noita c#:mäisyyksiä koodiin.
yritän tällä hetkellä ymmärtää jos täällä olisi vastaus.
On sielläkin vastaus
You the MAN
Kiitos tuhannesti!
Vielä yksi kysymys.
Miten saan tulokset idealla
system.out.println()
Nyt tulostan eka toka kolmas
Ja haluan
eka
toka
kolmas
Näin avuton mä oon tän ohjelmoinnin kanssa :)
Lisäys:
Tässä on valmis koodi
public void onClick(View v) { buttonMusic.start(); // TODO Auto-generated method stub List<String> sanat = Arrays.asList(textIn.getText().toString().split(" ")); Collections.shuffle(sanat); String tulos = sanat.get(0); for (int i=1; i<sanat.size(); i++) { tulos += " " + sanat.get(i); textOut.setText(tulos); }
Miksi ihmeessä siirsit tuon textOut asettamisen loopin sisään?
Jos sä oikeasti haluat ne tulostaa konsoliin rivi kerrallaan niin sittenhän se olis
List<String> sanat = Arrays.asList(textIn.getText().toString().split(" ")); Collections.shuffle(sanat); for (int i=0; i<sanat.size(); i++) { system.out.println(sanat.get(i)); }
Kokeile suorittaa vaikka toi Javala niin menee vähän helpommaksi tuo koodaaminen..
Hah.. luulin että se oli vaan sulta typo koska tulostus tapahtuu PHP:ssä loopin sisällä.
Java on ihan uus juttu mulle ja muutenkaan en todellakaan ole mikään koodaja ihme :)
Testasin ja se toimi niin oletin että se on hyvä näin.
Tässähän tätä Javaa nyt opetellaan :/
Lisäys:
Kiitos vielä paljon avusta et tiedäkään kuinka monta tuntia yritin saada noita 4 riviä jotka lopulta tuli sulta 2 minuutissa.
kiitos kiitos
Hiski10 kirjoitti:
Tässähän tätä Javaa nyt opetellaan :/
No juu, meinasin vaan että tuolla Javalassa tulisi "kädestä pitäen" opetettua tietyt perusasiat, niin sitten olisi helpompaa edetä.
Kyllä vaan lisäsin jo Javala:n kirjanmerkkeihini!
Aihe on jo aika vanha, joten et voi enää vastata siihen.