Я хочу напечатать строку «мое имя xxx» как «xxx is name my» без использования специальных методов (например, использовать методы пакета в java); спасибоString division
ответ
FYI, класс струн живет в java.lang package.
Да, но есть другие классы манипуляции строками, которые живут в java.util, например StringTokenizer. – Powerlord
String text = "my name is xxx";
String reversed = "";
for (String word : text.split(" ")) {
reversed = word + " " + reversed;
}
reversed = reversed.trim();
Если совсем нет вызова метода допускается, то это немного хаотичным.
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);
Для этого требуется более подробное объяснение. Мы читаем входной массив справа налево (i--
), и всякий раз, когда мы находим пробел или когда мы в конце концов попадаем в левую стену (i == -1
), мы копируем (for k
) слово, которое мы нашли в выходном массиве ([j++] =
). Мы отслеживаем границы слов в last
.
Разделен() не API JAVA? – Mohanavel
@Mohanavel: Технически все, кроме операторов, является Java API ... –
+1 для srettel. –
Я не знаю Java, но вот худший подход.
Если вы не хотите использовать метод разделения(), а затем
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());
Если это домашнее задание, и его перевели в какой-то один, то вы проигравший
Определенно не использовать Java-пакет ;-) –
- 1. String Division в Python
- 2. Java Custom String Division в динамическом массиве
- 3. Pandas - Multiindex Division [т. Division by Group]
- 4. Tetrahedron Division
- 5. BigDecimal division
- 6. TableRow division
- 7. Python division
- 8. Sentences division
- 9. Сборка: LC3 Division
- 10. C++ Long Division
- 11. Javascript Division and Multiplication
- 12. Android Layout Division
- 13. postgresql round division
- 14. Upper Division Линейная алгебра
- 15. JavaScript Array Division
- 16. FFT division Complex, Java
- 17. Math: Generations Division Generator
- 18. Pythonic output backend division
- 19. C++ division by 0
- 20. Python Variable Division
- 21. mysql division Precision
- 22. Html Division border animation
- 23. Php Custom Division Function
- 24. SQL Integer Division Remainder
- 25. PHP Division by Zero?
- 26. Int division in scala
- 27. Длинные номера. Division
- 28. php array division/explode
- 29. Bootstrap - Page Division
- 30. Unsigned division in nasm
Вы хотите использовать Java API без использования Java API? Это домашнее задание, не так ли? – skaffman
«Строковое деление» звучит странно. – Zaki
Для чего это стоит, ОП, эта задача называется символикой строки. – polygenelubricants