Leer Java voor Android Challenge Strings

Je hebt gelezen hoe Strings in Java werkt. Test je nieuwe vaardigheden met deze uitdaging: los deze op touwwerk gebaseerde puzzel op om je kennis van de Java-programmeertaal en Android-ontwikkeling te vergroten. Dat klopt ook, Android! Mogelijk moet je hier andere zelfstudies voor Android raadplegen.

Opstelling

Om je voor te bereiden op deze uitdaging, wil je beginnen met een eenvoudige Android-applicatie. Maak eenvoudig een Android-applicatie binnen Eclipse en bewerk de standaardactiviteit, met name de methode onCreate (), om de code te testen die u voor deze uitdaging maakt. Vergeet niet dat u de methode Log.v () kunt gebruiken om uitvoer (inclusief tekenreeksen) naar het logboek voor foutopsporing te verzenden. Dit is een snelle en handige manier om testuitvoer weer te geven voor oefeningen zoals deze.

Als wat we u zojuist hebben gevraagd al te uitdagend is, raden we u aan een stap terug te doen. Begin met een aantal van de Android-zelfstudies, zoals Inleiding tot Android-ontwikkeling of Begin Android: Aan de slag met Fortune Crunch. Als je eenmaal het opzetten van een Android-project onder de knie hebt, keer terug en probeer deze progressieve oefeningen.

Een progressieve uitdaging

Dit is een progressieve uitdaging. Als je elk van de onderstaande stappen correct volgt, los je een puzzel op. Houd er rekening mee dat er verschillende manieren zijn om dit probleem aan te pakken en daarom talloze oplossingen.

U kunt uw voortgang afdrukken naar het Android-foutopsporingslogboek met de naam LogCat met behulp van de methode Log.v ().

Bonus: Extra punten (niet dat je wordt beoordeeld) voor degenen die de verwijzing naar deze puzzel opvangen en waar deze vandaan komt.

Stap 1: definieer uw string

Voor uw eerste stap moet u een nieuwe tekenreeks definiëren voor gebruik in deze uitdaging. Je hebt hier veel opties. Voor de vele manieren waarop u strings in Java kunt definiëren, raadpleegt u onze String-zelfstudie. De eenvoudigste methode is natuurlijk om eenvoudig een nieuwe variabele van het type String te definiëren.

De inhoud van deze reeks moet de volgende tekst zijn:

Setec Astronomy

Stap 2: converteren naar hoofdletters

Voor je volgende trick, wil je de string naar alle hoofdletters omzetten.

wenk: Als u vastzit, controleert u de beschikbare methoden in de klasse String, zoals gedefinieerd in de Android SDK-documentatie.

Sanity Check: De inhoud van uw nieuwe tekenreeks moet de volgende tekst zijn: SETEC ASTRONOMY

Stap 3: Herschik de letters

Nu wordt het een beetje uitdagender ...

Zoals je je misschien herinnert, is een reeks gewoon een reeks tekens. In deze stap wilt u de tekens in uw hoofdreeks opnieuw rangschikken en één extra teken toevoegen.

Beschouw uw huidige tekenreeks als een reeks tekens op basis van 0. Herschik nu de karakters van uw string in de volgende volgorde, waarbij elk getal de huidige tekenindex vertegenwoordigt, streepjes worden gebruikt om elke index te scheiden en de asterisk (*) wordt gebruikt om een ​​spatie te representeren:

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

wenk: Onthoud dat String-variabelen niet kunnen worden gewijzigd. Overweeg serieus om StringBuilder te gebruiken.
om de inhoud van uw nieuwe string op te bouwen uit de specifieke tekens van uw bronstring.

Sanity Check: Als u de resulterende tekenreeks afdrukt, moet dit zijn:
STERCES YNAM OOT.

Stap 4: Draai die brieven om

Je bent er bijna! Het enige dat u hoeft te doen, is de tekens in uw tekenreeks omdraaien. Hopelijk heb je een StringBuilder gebruikt om je string op te bouwen uit individuele karakters; het heeft een handige methode die dit werk voor je kan doen.

Print de resulterende string. Het moet duidelijk zijn als je de puzzel hebt opgelost.

Stap 5: Tweak Your Solution (optionele uitdaging)

Het is altijd een goed idee om uw oplossing te herzien en te verbeteren, waardoor deze misschien iets eleganter of flexibeler wordt. Hoewel deze stap zeker niet essentieel is voor het oplossen van de puzzel (vooral omdat je dit al hebt gedaan), raden we je aan door te gaan als je de vorige stappen redelijk eenvoudig hebt gevonden.

Ervan uitgaande dat u dat nog niet hebt gedaan, kunt u overwegen hoe u een String-variabele kunt definiëren om de indexreeks te vertegenwoordigen die in stap 3 is besproken.

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

Voer nu de volgende stappen uit:

  1. Sorteer de reeks hierboven in een array van strings, één voor elk cijfer of sterretje.

    wenk: Controleer de String-klassenmethode met de naam split ().

  2. Maak een lus en doorloop deze reeks reeksen en bouw de resulterende reeks op met behulp van een StringBuilder. Als onderdeel van dit proces moet u elke tekenreeks converteren naar het juiste gehele getal of naar een spatie.

Conclusie

Android-ontwikkelaars gebruiken de hele tijd strings om tekstuele gegevens op te slaan voor verschillende doeleinden. Strings moeten vaak worden gemanipuleerd om in uw code te worden gebruikt. Zoals altijd zijn er veel manieren om deze problemen op te lossen, dus plaats gerust uw alternatieve antwoorden (of vragen) in het gedeelte Opmerkingen. We hebben een aantal methoden in de bijgevoegde bijlage verstrekt.

Veel succes!

Over de Auteurs

Mobiele ontwikkelaars Lauren Darcey en Shane Conder hebben samen meerdere boeken geschreven over Android-ontwikkeling: een diepgaand programmeerboek getiteld Android Wireless Application Development en Sams TeachYourself Android Application Development binnen 24 uur. Wanneer ze niet schrijven, besteden ze hun tijd aan het ontwikkelen van mobiele software bij hun bedrijf en het leveren van consultingservices. Ze zijn te bereiken via e-mail naar [email protected], via hun blog op androidbook.blogspot.com, en op Twitter @androidwireless.

Meer hulp nodig bij het schrijven van Android-apps? Bekijk onze nieuwste boeken en bronnen!