Comment trouver le caractère en double dans la chaîne sans utiliser des méthodes intégrées de classe de cordes dans les méthodes Java, telles que Demandez dans une interview, donnez-moi des solutions sur ce p> longueur () code>,
TOCHARARRAY () code>,
,
Charat ( ) code>?
4 Réponses :
Je suppose ici que votre intervieweur voulait que vous utilisiez une carte pour garder une trace de laquelle des caractères ont été observés et qui n'ont pas.
String input = "abcdeddrb"; Map<Character, Integer> map = new HashMap<>(); for (int i=0; i < input.length(); ++i) { Integer count = map.get(input.charAt(i)); map.put(input.charAt(i), count == null ? 1 : count + 1); } map.entrySet().stream() .filter(entry -> entry.getValue() > 1) .forEach(System.out::println); b=2 d=3
Vous utilisez toujours string.length () code>
@ user7294900 je suis d'accord avec votre commentaire. Je vais laisser cela au cas où il s'agissait de ce que l'OP cherchait.
Strictement aucune utilisation intégrée
Honnêtement, je pense que c'est une question truc. Si cette entreprise valorise réellement des questions comme celle-ci, vous ne voudrez peut-être pas prendre cette offre.
peut-être changer chaîne code> à
charat code>
Cela ne peut pas être le point de la question de l'entrevue. C'est comme si disant me servir une bière, mais n'utilisez pas de verre. Donc, vous me le donnez dans une botte sale à la place. C'est toujours de la bière cependant.
S'il vous plaît donnez-moi la solution complète
public static void main(String[] args) { String testStr = "abcdeddrb"; Map<Character, Integer> map = new HashMap<>(); Map<Character, Integer> duplicateStrMap = null; int count = 0; int i = 0; CharacterIterator it = new StringCharacterIterator(testStr); // Loop Characters in a String. for (char c = it.first(); c != CharacterIterator.DONE; c = it.next()) { if(map.containsKey(c)){ if(duplicateStrMap == null){ duplicateStrMap = new HashMap<>(); } duplicateStrMap.put(c, count); count++; } else{ map.put(c, ++i); } } // Print Results if(duplicateStrMap != null){ System.out.println("Total Duplcates Found :"+duplicateStrMap.size()); Iterator<Character> itr = duplicateStrMap.keySet().iterator(); System.out.println("Duplicate Characters :"); while(itr.hasNext()){ System.out.println(itr.next()); } } } Output: Total Duplcates Found :2 Duplicate Characters : b d
Essayez d'utiliser le localiter. J'espère que cela est utile.
Puits, stringcharacteriterator toujours utilise string.charat () quand il l'appelle.First () ou it.Suext ()
Pas de fonction intégrée Bro - Nag Ram
Aucune autre méthode intégrée, veuillez donner la bonne réponse
Aucune fonction intégrée de classe de cordes n'est utilisée. Caricatérité fait partie de l'emballage Java.Text.
Vous pouvez le faire avec la réflexion: puisque Peut-être que le point de la question de l'entretien était de vérifier si vous connaissez la réflexion ou pour vérifier si vous essayez d'arrêter l'entretien avec un Répondez comme "Pourquoi quelqu'un devrait-il faire ça?". P> P> b code> est le premier dupliqué
char code> la sortie sera
BD code> cependant, pas
dB code>. p>
Quelle est votre tentative?
Si vous ne pouvez pas utiliser aucune méthode intégrée i>, vous n'avez aucun moyen de vérifier le contenu de la chaîne.
Si quelqu'un vous demande "Comment détecteriez-vous des caractères en double dans une chaîne sans utiliser de méthodes existantes de la classe de chaîne" La seule réponse correcte est "Je ne le ferais pas, car c'est stupide et inutile." Sérieusement certaines de ces questions "intelligentes et innovantes" des interviews vous permettent de remettre en question la santé mentale de l'intervieweur et de l'entreprise leur demandant.
La sortie ne semble pas correcte. Pourquoi existe-t-il
C code>,
e code> et
r code>? Je ne vois pas ces dupliqués dans l'entrée.
La lettre
A code> n'est pas un caractère de duplication dans votre chaîne d'entrée
abcdeddrb code> et non plus
c code> ou
E code>. Seuls
B code> et
d code> se produisent plus d'une fois.
Après avoir obtenu des commentaires, je suis d'accord avec @Ohgodspiders et si vous ne pouvez pas accéder à des méthodes code> string code>, puis la question de l'entrevue ne me semble inutile.
désolé pour la mauvaise sortie par erreur