Je veux imprimer la chaîne "mon nom est xxx" en tant que "xxx est le nom mon" sans utiliser de méthodes spéciales (comme les méthodes de paquets util en java); merciDivision de chaînes
Répondre
FYI, la classe String réside dans le package java.lang.
Oui, mais il existe d'autres classes de manipulation de chaînes qui résident dans java.util, comme StringTokenizer. – Powerlord
String text = "my name is xxx";
String reversed = "";
for (String word : text.split(" ")) {
reversed = word + " " + reversed;
}
reversed = reversed.trim();
Si aucune appel de méthode est autorisée, il est un peu messier.
String text = "my name is xxx";
char[] letters = text.toCharArray();
char[] srettel = new char[letters.length];
for (int last = letters.length, i = last - 1, j = 0; i >= -1; i--) {
if (i == -1 || letters[i] == ' ') {
for (int k = i + 1; k < last;) {
srettel[j++] = letters[k++];
}
if (i != -1) srettel[j++] = ' ';
last = i;
}
}
String reversed = new String(srettel);
Cela nécessite un peu plus d'explications. Nous lisons le tableau d'entrée de droite à gauche (i--
) et chaque fois que nous trouvons un espace, ou lorsque nous touchons le mur gauche (i == -1
), nous copions (for k
) le mot que nous avons trouvé dans le tableau de sortie ([j++] =
). Nous gardons la trace des limites de mots dans last
.
Est-ce que split() n'est pas une API JAVA? – Mohanavel
@Mohanavel: Techniquement, tout ce qui est en dehors des opérateurs est l'API Java ... –
+1 pour srettel. –
Je ne connais pas Java, mais voici l'approche du cas le plus défavorable.
Si vous ne voulez pas utiliser la méthode split(), puis
string text = "My name is Khan";
int length = text.Length;
int numberOfWords = 0;
for (int i = 0; i < text.Length; i++)
{
if (text[i] == ' ')
{
numberOfWords++;
}
}
numberOfWords += 1; // no of words will be always plus one than no of space.
string[] wordCollection = new string[numberOfWords];
int wordLocation = 0;
for (int i = 0; i < text.Length; i++)
{
if (text[i] == ' ')
{
wordLocation++;
}
wordCollection[wordLocation] += text[i];
}
string reversedString = string.Empty;
foreach (string str in wordCollection)
{
reversedString = str + " " + reversedString;
}
Console.Write(reversedString.Trim());
Dans ce travail à domicile et son transfert à quelqu'un, alors vous êtes le plus lâche
Certainement pas en utilisant un paquet Java ;-) –
- 1. Division de chaînes Python
- 2. Division de chaînes/jetons
- 3. Manipulation de chaînes: Division de données délimitées
- 4. Division d'une liste
- 5. Jeton de recherche de requête semblable à Google et division de chaînes
- 6. comment regrouper la division de données par fonction de division
- 7. Placement d'une division à l'intérieur d'une division
- 8. division entière vs double division - question d'optimisation
- 9. Opérations de division de chaîne en C#
- 10. Comment trouver quel délimiteur a été utilisé lors de la division de chaînes (VB.NET)
- 11. Division d'un NSString
- 12. propriétés de division entière
- 13. problèmes de division
- 14. aide Regex avec chaîne de division
- 15. problème de division de gamme
- 16. Fonction de division de sécurité
- 17. terme par division division en python (division termino en termino en python)
- 18. Python/Numpy: tableau de division
- 19. Division de PDF en png
- 20. RSS parsing, chaîne de division
- 21. Division de NSString dans IPhone
- 22. Division de titres dans DropDown
- 23. Python: un moyen d'effectuer cette division "hybride"() sur des chaînes multilingues (par exemple chinois et anglais)?
- 24. Moyenne rapide sans division
- 25. Division par zéro erreurs
- 26. masm division overflow
- 27. Java - division problème String
- 28. ReportViewer Division par zéro
- 29. python division tuple
- 30. Scala BigDecimal division
Vous voulez utiliser Java API sans utiliser l'API Java? C'est devoirs, non? – skaffman
"Division de chaînes" semble étrange. – Zaki
Pour ce que ça vaut, OP, cette tâche est appelée tokenization de chaîne. – polygenelubricants