Re: Java hjálp...
Sent: Fös 08. Okt 2010 01:18
Ég er að gera rosa skemmtilegt, skrifa Linux skipunina 'wc' í C++
KermitTheFrog skrifaði:Was ist das?
Kóði: Velja allt
$fp = fopen('php://stdin','r');
$in = '';
while ( ! feof($fp)){ $in .= fgets($fp); }
fclose($fp);
$in = substr($in,0,strlen($in)-1);
switch($_SERVER['argv'][1])
{
case '-c': echo strlen($in); break;
case '-m': echo mb_strlen($in); break;
case '-l': echo count(explode("\n", $in)); break;
case '-w': echo count(explode(' ', $in)); break;
}
starionturbo skrifaði:KermitTheFrog skrifaði:Was ist das?
Skipun sem Paul Rubin og David MacKenzie skrifuðu, en hún getur talið línur, orð characters og bytes ásamt því að finna lengstu línuna.
Einfalt dæmi í php sem ég kastaði upp hérna...Kóði: Velja allt
$fp = fopen('php://stdin','r');
$in = '';
while ( ! feof($fp)){ $in .= fgets($fp); }
fclose($fp);
$in = substr($in,0,strlen($in)-1);
switch($_SERVER['argv'][1])
{
case '-c': echo strlen($in); break;
case '-m': echo mb_strlen($in); break;
case '-l': echo count(explode("\n", $in)); break;
case '-w': echo count(explode(' ', $in)); break;
}
intenz skrifaði:starionturbo skrifaði:KermitTheFrog skrifaði:Was ist das?
Skipun sem Paul Rubin og David MacKenzie skrifuðu, en hún getur talið línur, orð characters og bytes ásamt því að finna lengstu línuna.
Einfalt dæmi í php sem ég kastaði upp hérna...Kóði: Velja allt
$fp = fopen('php://stdin','r');
$in = '';
while ( ! feof($fp)){ $in .= fgets($fp); }
fclose($fp);
$in = substr($in,0,strlen($in)-1);
switch($_SERVER['argv'][1])
{
case '-c': echo strlen($in); break;
case '-m': echo mb_strlen($in); break;
case '-l': echo count(explode("\n", $in)); break;
case '-w': echo count(explode(' ', $in)); break;
}
Flottur, en þetta er ögn meira mál í C++ sérstaklega þar sem við megum ekki nota nein builtin library nema iostream og fstream og eigum að lesa eitt byte/staf fyrir sig.
KermitTheFrog skrifaði:Quick question: Get ég extractað fleiri en eina breytu úr falli?
KermitTheFrog skrifaði:Quick question: Get ég extractað fleiri en eina breytu úr falli?
Kóði: Velja allt
void someMethod() {
MyObject obj = new MyObject();
doSomethingWithMyObject(obj);
System.out.println(obj.getA());
System.out.println(obj.getB());
System.out.println(obj.getC());
}
void doSomethingWithMyObject(MyObject obj) {
obj.setA(45);
obj.setB(13);
obj.setC(6);
}
KermitTheFrog skrifaði:Eftir stutt gúgl sýnist mér það ekki mögulegt. En annað: http://www.erights.org/elang/collect/String-ref.html
Þarna á síðunni undir Indexing Expression eru leiðbeiningar um það hvernig skal ná í ákveðna stafi eða ákveðinn hluta strengjabreytu. Ég get á engan hátt fengið þetta til að virka í java. Man að ég náði einhverntímann að nota get() til að ná í einn staf en mér tókst ekki að taka part af strengnum ("foobar" run(2,4)).
Kann einhver á þetta?
appel skrifaði:KermitTheFrog skrifaði:Quick question: Get ég extractað fleiri en eina breytu úr falli?Kóði: Velja allt
void someMethod() {
MyObject obj = new MyObject();
doSomethingWithMyObject(obj);
System.out.println(obj.getA());
System.out.println(obj.getB());
System.out.println(obj.getC());
}
void doSomethingWithMyObject(MyObject obj) {
obj.setA(45);
obj.setB(13);
obj.setC(6);
}
Milljón aðrar leiðir, og þessi hér að ofan er ekki sú besta.
intenz skrifaði:appel skrifaði:KermitTheFrog skrifaði:Quick question: Get ég extractað fleiri en eina breytu úr falli?Kóði: Velja allt
void someMethod() {
MyObject obj = new MyObject();
doSomethingWithMyObject(obj);
System.out.println(obj.getA());
System.out.println(obj.getB());
System.out.println(obj.getC());
}
void doSomethingWithMyObject(MyObject obj) {
obj.setA(45);
obj.setB(13);
obj.setC(6);
}
Milljón aðrar leiðir, og þessi hér að ofan er ekki sú besta.
Ég held alveg örugglega að hann sé að tala um að returna mörgum breytum/gildum?
Kóði: Velja allt
name, address, phone = getPersonDetails(someKennitala)
Kóði: Velja allt
person = getPersonDetails(someKennitala)
Kóði: Velja allt
person.getName()
person.getAddress()
person.getPhone()
appel skrifaði:Þetta væri verra:Kóði: Velja allt
name, address, phone = getPersonDetails(someKennitala)
frekar enKóði: Velja allt
person = getPersonDetails(someKennitala)
dori skrifaði:appel skrifaði:Þetta væri verra:Kóði: Velja allt
name, address, phone = getPersonDetails(someKennitala)
frekar enKóði: Velja allt
person = getPersonDetails(someKennitala)
Þetta er náttúrulega ekki idiomatic java kóði (enda ekki hægt, rite?). Í Python er það mjög fínn siður að skila tuple og unpakka í tvær eða fleiri breytur.
@OP: ekki berjast við málið, ef þú ert að reyna að gera eitthvað sem virðist ekki vera hægt að gera í því máli sem þú notar á örugglega að gera þetta öðruvísi í því máli. Svo er það auðvitað spurning hvenær þarf að skila tveimur gildum úr falli, hvað í ósköpunum ertu að gera sem kallar á tvö return gildi?
dori skrifaði:Ég myndi segja að það væri mun eðlilegra fyrir nákvæmlega þetta dæmi að búa frekar til fall sem skilar random textabreytu úr textafylki. Og keyra það fall einu sinni fyrir hvert fylki.
Þú getur líka haft það í huga að þú ert með fylki sem er með n stök sem hafa index á bilinu 0..n-1. Búðu bara til random tölu á því bili og þá ertu með random stak. Skiptir engu með hvað er í fylkinu.KermitTheFrog skrifaði:En fylkin eru mismunandi. a fylki inniheldur aðrar breytur en b og c og öfugt.
KermitTheFrog skrifaði:Hvernig returna ég fylkinu? return d; virkar ekki, return d[]; virkar ekki, hvernig geri ég?
eða... Dr. Java setur ekkert út á return d; en þegar ég ætla að koma því inn í main fallið þá vill hann ekki compile-a
Kóði: Velja allt
public String[] fall(String[] var1,String[] var2,String[] var3){
String[] retval = new String[3];
retval[0] = var1[0];
retval[1] = var2[0];
retval[2] = var3[0];
return retval;
}
KermitTheFrog skrifaði:Já, var kominn með það en þegar ég ætla að gera t.d. String eða String[] breyta = fall(breytur) í main fallinu þá gengur það ekki upp.
KermitTheFrog skrifaði:Já, var kominn með það en þegar ég ætla að gera t.d. String eða String[] breyta = fall(breytur) í main fallinu þá gengur það ekki upp.