2020-01-16, 12:29
|
#2236
|
Registered User
Reg.datum: Jul 2010
Inlägg: 77
|
Är lost om det här är möjligt att göra i Java.
Jag vill läsa in strängar från en textfil och dela upp strängen i två delar och spara i varsin sträng.
Just nu så sparas strängarna på varsin rad i text filen så här :
(hej kolozzeum)[hej igen]
(Hejsan)[Tjena]
...
Det jag vill göra är att läsa in strängarna och plocka ut det som är inom ( ) och spara i en sträng samt plocka ut det som är inom [ ] och spara i en annan sträng, så resultatet av den första raden kommer bli:
Stringone = "hej kolozzeum"
Stringtwo = "hej igen"
Det här borde väl vara möjligt men hittar inte något smidigt exempel jag kan följa, någon som vet hur jag ska göra? Borde vara typ något i stil med substring eller liknande
Senast redigerad av Wequ den 2020-01-16 klockan 12:35.
|
|
|
2020-01-16, 13:49
|
#2237
|
Registered User
Reg.datum: May 2015
Inlägg: 1 601
|
Citat:
Ursprungligen postat av Wequ
Är lost om det här är möjligt att göra i Java.
Jag vill läsa in strängar från en textfil och dela upp strängen i två delar och spara i varsin sträng.
Just nu så sparas strängarna på varsin rad i text filen så här :
(hej kolozzeum)[hej igen]
(Hejsan)[Tjena]
...
Det jag vill göra är att läsa in strängarna och plocka ut det som är inom ( ) och spara i en sträng samt plocka ut det som är inom [ ] och spara i en annan sträng, så resultatet av den första raden kommer bli:
Stringone = "hej kolozzeum"
Stringtwo = "hej igen"
Det här borde väl vara möjligt men hittar inte något smidigt exempel jag kan följa, någon som vet hur jag ska göra? Borde vara typ något i stil med substring eller liknande
|
Se svaret längst ner:
https://stackoverflow.com/questions/...hesis/24256532
|
|
|
2020-02-11, 15:16
|
#2238
|
Registered User
Reg.datum: Jul 2010
Inlägg: 77
|
Sitter och experimenterar med nästlade loopar
Det jag vill göra är att multiplicera alla element i en lista med alla andra element och spara summan.
Alltså har jag tex en lista som ser ut såhär [0,1,2,3] så vill jag att följande sker i första loopen: 0*1, 0*2, 0*3
I andra loopen : 1*2, 1*3
I tredje : 2*3
Och spara resultatet alla multiplikationer i en "int summa" t.ex.
Jag har skrivit följande kod:
Kod:
List<Integer> lista = new ArrayList<>();
lista.add(0);
lista.add(1);
lista.add(2);
lista.add(3);
int summa = 0;
for(int i = 0; i < lista.size(); i++){
for(int j = i+1; j < lista.size(); j++){
summa = lista.get(i) * lista.get(j);
}
}
System.out.print(summa);
Men får fel utskrift, jag får resultatet 6 när jag borde få summan 11
|
|
|
2020-02-11, 15:38
|
#2239
|
Älskar eterneller
Reg.datum: Aug 2006
Inlägg: 137
|
Citat:
Ursprungligen postat av Wequ
Sitter och experimenterar med nästlade loopar
Det jag vill göra är att multiplicera alla element i en lista med alla andra element och spara summan.
Alltså har jag tex en lista som ser ut såhär [0,1,2,3] så vill jag att följande sker i första loopen: 0*1, 0*2, 0*3
I andra loopen : 1*2, 1*3
I tredje : 2*3
Och spara resultatet alla multiplikationer i en "int summa" t.ex.
Jag har skrivit följande kod:
Kod:
List<Integer> lista = new ArrayList<>();
lista.add(0);
lista.add(1);
lista.add(2);
lista.add(3);
int summa = 0;
for(int i = 0; i < lista.size(); i++){
for(int j = i+1; j < lista.size(); j++){
summa = lista.get(i) * lista.get(j);
}
}
System.out.print(summa);
Men får fel utskrift, jag får resultatet 6 när jag borde få summan 11
|
Gör en spårutskrift av summa efter rad 11. Kör och försök sedan lista ut vad som händer
|
|
|
2020-02-11, 15:38
|
#2240
|
Registered User
Reg.datum: Jul 2010
Inlägg: 77
|
Lol är fan dum i huvudet, funkade att göra såhär bara:
Kod:
summa =summa +( lista.get(i) * lista.get(j));
sparade ju bara senaste multiplikationen i summa annars
|
|
|
2020-02-11, 15:38
|
#2241
|
Älskar eterneller
Reg.datum: Aug 2006
Inlägg: 137
|
Citat:
Ursprungligen postat av Wequ
Lol är fan dum i huvudet, funkade att göra såhär bara:
Kod:
summa =summa +( lista.get(i) * lista.get(j));
sparade ju bara senaste multiplikationen i summa annars
|
Alternativt använd += operatorn.
|
|
|
2020-02-11, 15:59
|
#2242
|
Registered User
Reg.datum: Jul 2010
Inlägg: 77
|
Ok en annan grej jag suttit och pillat på, jag vill multiplicera första och sista elementet i en lista med varandra, sedan flytta in ett steg och multiplicera näst första och näst sista med varandra osv osv och spara allt i en summa.
Alltså säg att vi har en lista [0,1,2,3,4,5]
så ska följande multiplikationer ske:
0*5=0
+
1*4=4
+
2*3=6
= 10
Det jag har skrivit just nu:
Kod:
List<Integer> lista = new ArrayList<>();
lista.add(0);
lista.add(1);
lista.add(2);
lista.add(3);
lista.add(4);
lista.add(5);
long summa = 0;
for (int i = 0; i < lista.size(); i++){
summa = summa + (lista.get(i) * lista.get(lista.size()-(i+1)));
}
System.out.print(summa);
Men det här resulterar i summan 20 istället för 10, jag misstänker att loopen fortsätter efter 2*3? och alltså går igenom samma uträkningen igen vilket leder till att det blir dubbla summan, hur får jag stopp på den efter 2*3?
|
|
|
2020-02-11, 16:08
|
#2243
|
Banned User
Reg.datum: Jan 2012
Inlägg: 10 099
|
Citat:
Ursprungligen postat av Wequ
Ok en annan grej jag suttit och pillat på, jag vill multiplicera första och sista elementet i en lista med varandra, sedan flytta in ett steg och multiplicera näst första och näst sista med varandra osv osv och spara allt i en summa.
Alltså säg att vi har en lista [0,1,2,3,4,5]
så ska följande multiplikationer ske:
0*5=0
+
1*4=4
+
2*3=6
= 10
Det jag har skrivit just nu:
Kod:
List<Integer> lista = new ArrayList<>();
lista.add(0);
lista.add(1);
lista.add(2);
lista.add(3);
lista.add(4);
lista.add(5);
long summa = 0;
for (int i = 0; i < lista.size(); i++){
summa = summa + (lista.get(i) * lista.get(lista.size()-(i+1)));
}
System.out.print(summa);
Men det här resulterar i summan 20 istället för 10, jag misstänker att loopen fortsätter efter 2*3? och alltså går igenom samma uträkningen igen vilket leder till att det blir dubbla summan, hur får jag stopp på den efter 2*3?
|
Det ser ut som att du kanske skulle avbryta for loopen då gått igenom halva listan snarare än hela listan, annars kommer du ju få med alla element två gånger.
Senast redigerad av svenbanan den 2020-02-11 klockan 16:09.
|
|
|
2020-02-11, 16:14
|
#2244
|
Kämpa! Kämpa! Kämpa!
Reg.datum: Aug 2001
Inlägg: 398
|
Ser ut som du gör:
(0*5)
+
(1*4)
+
(2*3)
+
(3*2)
+
(4*1)
+
(5*0)
Vill du sluta halvvägs får du väl göra nåt i stil med:
for (int i = 0; i < lista.size()/2; i++){
__________________
P r o f e . t
|
|
|
2020-02-11, 16:14
|
#2245
|
Älskar eterneller
Reg.datum: Aug 2006
Inlägg: 137
|
Citat:
Ursprungligen postat av Wequ
Ok en annan grej jag suttit och pillat på, jag vill multiplicera första och sista elementet i en lista med varandra, sedan flytta in ett steg och multiplicera näst första och näst sista med varandra osv osv och spara allt i en summa.
Alltså säg att vi har en lista [0,1,2,3,4,5]
så ska följande multiplikationer ske:
0*5=0
+
1*4=4
+
2*3=6
= 10
Det jag har skrivit just nu:
Kod:
List<Integer> lista = new ArrayList<>();
lista.add(0);
lista.add(1);
lista.add(2);
lista.add(3);
lista.add(4);
lista.add(5);
long summa = 0;
for (int i = 0; i < lista.size(); i++){
summa = summa + (lista.get(i) * lista.get(lista.size()-(i+1)));
}
System.out.print(summa);
Men det här resulterar i summan 20 istället för 10, jag misstänker att loopen fortsätter efter 2*3? och alltså går igenom samma uträkningen igen vilket leder till att det blir dubbla summan, hur får jag stopp på den efter 2*3?
|
Du har ju redan skrivit hur beräkningen ska se ut:
Kod:
0*5=0
+
1*4=4
+
2*3=6
= 10
Deklarera int:arna som du plockar ut i varje pass och skriv ut dom. Du kan till och med få det att se ut som beräkningen ovan.
|
|
|
2020-02-11, 19:26
|
#2246
|
Registered User
Reg.datum: Jul 2010
Inlägg: 77
|
Citat:
Ursprungligen postat av olander08
Deklarera int:arna som du plockar ut i varje pass och skriv ut dom. Du kan till och med få det att se ut som beräkningen ovan.
|
Förstår inte riktigt vad du menar här?
Beräkningen och listan är bara ett exempel, vill ju att det även ska funka på andra siffror i olika listor osv
Ska prova lista.size()/2
|
|
|
2020-02-12, 05:47
|
#2247
|
Banned User
Reg.datum: Jan 2012
Inlägg: 10 099
|
Citat:
Ursprungligen postat av Wequ
Förstår inte riktigt vad du menar här?
Beräkningen och listan är bara ett exempel, vill ju att det även ska funka på andra siffror i olika listor osv
Ska prova lista.size()/2
|
Det borde funka. Jag vet inte vad du hade tänkt dig skulle ske med mittersta elementet i en lista med ojämnt antal. Men om du gör såhär så kommer det multipliceras med sig själv och komma med i summan.
|
|
|
2020-02-12, 11:43
|
#2248
|
Registered User
Reg.datum: Sep 2009
Inlägg: 568
|
Nån som är expert på .sh?
__________________
All the things I really like to do are either illegal, immoral, or fattening. /Alexander Woollcott (1887-01-19 – 1943-01-23)
|
|
|
2020-02-12, 13:54
|
#2249
|
Banned User
Reg.datum: Jan 2012
Inlägg: 10 099
|
Citat:
Ursprungligen postat av TomasB
Nån som är expert på .sh?
|
Varför inte skriva vad du undrar över istället och se om nån kan svara på frågan?
On topic: Nej, jag är inte expert på shellscript.
|
|
|
2020-02-12, 13:56
|
#2250
|
Registered User
Reg.datum: May 2015
Inlägg: 1 601
|
Någon skickade den här memen igår, var lite "blåsa-ut-luft-ur-näsan"-rolig.
|
|
|
Regler för att posta
|
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg
HTML-kod är av
|
|
|
Alla tider är GMT +1. Klockan är nu 20:50.
|
|