So finden Sie das erste Zeichen eines Strings ohne Verwendung einer API-Methode

8

Kürzlich wurde mir diese Frage in einem Interview gestellt:

  

Suchen Sie das erste Zeichen eines String , ohne eine Methode aus String class

zu verwenden

Geben Sie die folgenden Ansätze unter der Annahme str als String an:

  1. str.charAt(0)
  2. str.toCharArray()[0]
  3. str.substring(0,1)

Kann mir jemand vorschlagen, wie es erreicht werden kann?

    
Amit Bhati 05.02.2016, 21:06
quelle

5 Antworten

4

Mit Matcher API (und nicht String ): Wir erstellen ein Muster, das jedes Zeichen erfasst, aber nur das erste findet und es druckt (das > Punktmodus kann den Fall behandeln, in dem das erste Zeichen ein Zeilentrennzeichen ist.

%Vor%     
Tunaki 05.02.2016, 21:14
quelle
2

s.charAt(0) verwendet CharSequence API, nicht String , also formell ist es richtige Antwort.

Eine andere Option ist die Verwendung einer Methode, die CharSequence als Argument akzeptiert, z. G. einer von Commons Lang StringUtils.

    
Alex Salauyou 05.02.2016 21:31
quelle
1

Mit Reflection können Sie auf

zugreifen %Vor%

Array von String class, die alle Zeichen speichert. So könnte Ihr Code wie folgt aussehen:

%Vor%

Ausgabe: a .

Auch technisch StringBuilder API ist nicht dasselbe wie String , also könnten wir auch

verwenden %Vor%     
Pshemo 05.02.2016 21:14
quelle
1

Eine weitere dumme Lösung mit einem benutzerdefinierten Schreiber:

%Vor%

Verwendung:

%Vor%     
Peter Walser 05.02.2016 21:49
quelle
1

Sie können StringReader verwenden und das erste Zeichen lesen:

%Vor%     
manouti 05.02.2016 21:37
quelle

Tags und Links