Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java: Tekstikentän sanojen sekoitus

Sivun loppuun

Hiski10 [25.11.2012 17:58:24]

#

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!

Grez [25.11.2012 18:03:25]

#

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.

Hiski10 [25.11.2012 18:17:48]

#

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();
	}
	}

Grez [25.11.2012 19:02:29]

#

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);

Hiski10 [25.11.2012 19:49:42]

#

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>"

Grez [25.11.2012 19:56:49]

#

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.

Hiski10 [25.11.2012 19:57:47]

#

yritän tällä hetkellä ymmärtää jos täällä olisi vastaus.

http://stackoverflow.com/questions/8819026/error-the-type-of-the-expression-must-be-an-array-type-but-it-resolved-to-array

Grez [25.11.2012 20:12:43]

#

On sielläkin vastaus

Hiski10 [25.11.2012 20:15:06]

#

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);
				}

Grez [25.11.2012 20:24:13]

#

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..

Hiski10 [25.11.2012 20:38:10]

#

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

Grez [25.11.2012 20:52:15]

#

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ä.

Hiski10 [25.11.2012 21:02:37]

#

Kyllä vaan lisäsin jo Javala:n kirjanmerkkeihini!


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta