Lär dig Java för Android Utmaning Strängar

Du har läst om hur Strängar fungerar i Java. Testa dina nya färdigheter med denna utmaning: Lös det här strängbaserade pusset för att hjälpa dig att stärka din kunskap om Java-programmeringsspråket och Android-utveckling. Det är rätt, Android också! Du kan behöva hänvisa till andra Android-handledning här.

Inrätta

För att förbereda sig för denna utmaning, vill du börja med en grundläggande Android-applikation. Skapa en Android-applikation inom Eclipse och ändra dess standardaktivitet, särskilt metoden onCreate (), för att testa koden du skapar för den här utmaningen. Kom ihåg att du kan använda metoden Log.v () för att skriva ut utdata (inklusive strängar) till felsökningsloggen. Det här är ett snabbt och bekvämt sätt att visa testutmatning för övningar som den här.

Om det vi bara har frågat om är redan alltför utmanande, rekommenderar vi att du tar ett steg tillbaka. Börja med några av Android-handledningarna, till exempel Introduktion till Android-utveckling eller Börja Android: Komma igång med Fortune Crunch. När du har behärskat inrättandet av ett Android-projekt, returnera och försök med dessa progressiva övningar.

En progressiv utmaning

Detta är en progressiv utmaning. Om du följer var och en av nedanstående steg korrekt löser du ett pussel. Tänk på att det finns många sätt att närma sig detta problem och därför många lösningar.

Du kan skriva ut dina framsteg i Android-felsökningsloggen som heter LogCat med hjälp av metoden Log.v ().

Bonus: Extra poäng (inte att du betygsätts) för dem som tar hänvisningen till detta pussel, och varifrån det kommer.

Steg 1: Definiera din sträng

För ditt första steg måste du definiera en ny textsträng för användning i denna utmaning. Du har många alternativ här. För de många sätten på vilka du kan definiera strängar i Java, se vår String-handledning. Den enklaste metoden skulle givetvis vara att helt enkelt definiera en ny variabel av typen String.

Innehållet i denna sträng ska vara följande text:

Setec astronomi

Steg 2: Konvertera till versaler

För ditt nästa trick, vill du konvertera strängen till alla stora bokstäver.

Ledtråd: Om du har fastnat, kolla de tillgängliga metoderna inom String-klassen, enligt definitionen i Android SDK-dokumentationen.

Sanity Check: Innehållet i din nya sträng ska vara följande text: SETEC ASTRONOMY

Steg 3: Ordna om bokstäverna

Nu blir det lite mer utmanande ...

Som du kanske kommer ihåg är en sträng helt enkelt en sekvens av tecken. I det här steget vill du omorganisera tecknen i din stora bokstäver och lägga till ett extra tecken.

Tänk på din nuvarande sträng som en 0-baserad rad tecken. Omformera nu strängens tecken till följande sekvens, där varje tal representerar det aktuella teckenindexet, används streck för att separera varje index och asterisken (*) används för att representera ett mellanslag:

 7-8-3-9-4-1-0 - * - 14-11-6-13-5-12-10-2 

Ledtråd: Kom ihåg att strängvariabler inte kan ändras. Allvarligt överväga att använda StringBuilder.
att bygga upp ditt nya stränginnehåll från de specifika tecknen i din källsträng.

Sanity Check: Om du skriver ut den resulterande strängen ska den vara:
STERCES YNAM OOT.

Steg 4: Omvända dessa bokstäver

Du är nästan där! Det enda kvar att göra är att vända karaktärerna i din sträng. Förhoppningsvis använde du en StringBuilder för att bygga upp din sträng från enskilda tecken; Det har en bra metod som kan det här jobbet för dig.

Skriv ut den resulterande strängen. Det ska vara klart om du har löst pusslet.

Steg 5: Tweak din lösning (valfri utmaning)

Det är alltid en bra idé att granska din lösning och förbättra den, kanske gör den lite elegantare eller flexibel. Medan det här steget verkligen inte är nödvändigt för att lösa pusslet (speciellt som du redan har gjort det), föreslår vi att du fortsätter om du har hittat de tidigare stegen ganska enkelt.

Om du antar att du inte redan har det, överväga hur du kan definiera en strängvariabel för att representera indexsekvensen som diskuteras i steg 3.

 String strSequence = "7-8-3-9-4-1-0 - * - 14-11-6-13-5-12-10-2"; 

Ta nu följande steg:

  1. Parsa strängen ovan i en rad strängar, en för varje nummer eller asterisk.

    Ledtråd: Kontrollera strängklassmetoden kallad split ().

  2. Skapa en loop och iterera genom denna uppsättning strängar och bygga den resulterande strängen med en StringBuilder. Som en del av denna process måste du konvertera varje sträng till lämpligt heltal, eller till en mellanslag.

Slutsats

Android-utvecklare använder Strings hela tiden för att lagra textdata för olika ändamål. Strängar måste ofta manipuleras för att kunna användas inom din kod. Som alltid finns det många sätt att lösa dessa problem, så skriv gärna dina alternativa svar (eller några frågor) i kommentarfältet. Vi har levererat ett par metoder i bifogad bilaga.

Lycka till!

Om Författarna

Mobila utvecklare Lauren Darcey och Shane Conder har medverkat flera böcker om Android-utveckling: en fördjupad programmeringsbok med titeln Android Wireless Application Development och Sams TeachYourself Android Application Development inom 24 timmar. När de inte skriver, spenderar de sin tid på att utveckla mobil mjukvara hos sina företag och tillhandahålla konsulttjänster. De kan nås via e-post till [email protected], via deras blogg på androidbook.blogspot.com, och på Twitter @ androidwireless.

Behöver du hjälp med att skriva Android Apps? Kolla in våra senaste böcker och resurser!