У меня есть строка в java неопределенной длины, и мне нужно взять первые 3 и последние 3 символа и поместить их в новые строки. Есть ли простой способ сделать это?Возьмите (n) символы из строки
ответ
Забавно, все решения глючат (update: кроме сообщения с регулярным выражением) и может привести к StringIndexOutOfBoundsException
, когда длина входной строки меньше 3 (вопрос явно говорит, что длина не определена). Если предположить, что ул не равно нулю, то правильный путь будет:
String first = str.substring(0, Math.min(str.length(), 3));
String second = str.substring(Math.max(0, str.length() - 3), str.length());
Это не является действительным как таковым. Оп попросил получить первые три и последние три символа строки. Это невозможно для строк с менее чем тремя символами. Поэтому я думаю, что исключение «недопустимый аргумент» было бы более на месте, если строка имеет менее трех символов./ –
Зависит от контекста, он может захотеть иметь 2/1 или ничего. Для первого мое решение правильное, для последнего правильное правильное выражение. – milan
str.substring(0, 3) + str.substring(str.length - 3)
EDIT:
Этот код не является безопасным. Я оставляю это для вас, чтобы проверить, не слишком ли короткая строка. Вы также можете использовать регулярные выражения:
Pattern p = Pattern.compile("^(.{3}).*(.{3})$");
Matcher m = p.matcher(str);
if (m.find()) {
String s1 = m.group(1);
String s2 = m.group(2);
}
если str.length меньше 3, то не будет соответствия. – milan
new_string = old_string.substring(0,3) +
old_string.substring(old_string.lenght() - 3)
Как милан уже сказал, подстрока путь здесь. Вы можете увидеть некоторые примеры использования here.
String FullName = "Cande Nauer";
String FirstNameChars = "";
FirstNameChars = FullName.substring(0, 3);
В этом примере FirstNameChars будет «Can». Чтобы получить последние три символа, вам нужно будет сначала получить длину строки.
Ваша длина должна быть '3', а не' 2' –
. Вы абсолютно прав Петр. Большое спасибо! – MacLuq
Вы можете использовать метод подстроки: "Привет, мир!"
String text = "Hello world!";
String newText = text.substring(0, 3) + text.substring(text.length-3);
Это займет и создайте новую строку, которая является «Helld!».
Если вы ищете способ, который вы можете использовать:
String trimThreeCharacters(text){
return text.substring(0,3) + text.substring(text.length-3);
}
Правильно, что происходит, когда String text = "yo" :) – milan
public class Substring {
public static void main(String[] args) {
String input = "very long string, with random content";
System.out.println(input.substring(0, 3));
int length = input.length();
System.out.println(input.substring(length - 3));
}
}
Результат
ver
ent
Другой способ сделать это
public class MyString
{
private String value;
public MyString(String p_value)
{
value = p_value;
}
public String getFirstThree()
{
return value.substring(0, 3);
}
public String getLastThree()
{
return value.substring(value.length() - 3);
}
public String getNewString()
{
return getFirstThree() + getLastThree();
}
public static void main(String[] args)
{
MyString example = new MyString("hello world");
String newString = example.getNewString();
System.out.println(newString);
}
}
- 1. Возьмите n элементов из коллекции
- 2. Обрезать ведущие n альфа-символы из строки
- 3. Возьмите подстроки из строки
- 4. Возьмите первые символы
- 5. Возьмите N элементы из списка на условиях
- 6. Возьмите N непустых предметов из набора clojure
- 7. Возьмите первые n элементов из System.Collections.Generic.IEnumerable
- 8. Возьмите многочисленные части строки из длинной строки
- 9. Возьмите значение из n-го столбца фрейма данных, для n разных для каждой строки
- 10. Возьмите команды из файла из командной строки
- 11. Возьмите одну строку строки из RichTextBox
- 12. Возьмите следующие N строк рекурсивно и последовательно из таблицы sql
- 13. Удалить символы из строки
- 14. Возьмите подстроку из строки в C
- 15. Возьмите только буквы из строки элементов
- 16. Возьмите из последней строки в vimrc
- 17. Возьмите модуль байта строки
- 18. Возьмите часть строки (PHP)
- 19. удалить повторяющиеся символы из строки
- 20. Обрезать пробельные символы из строки
- 21. Возьмите N значений, наблюдаемых на каждом интервале
- 22. Удалить «\ n \» из строки
- 23. удалить символы из строки c
- 24. Как обрезать n символов из строки в PHP?
- 25. Удалите символы из строки
- 26. Обрезать символы из строки
- 27. Заменить символы из строки
- 28. Удалить символы из строки
- 29. Удалить символы из строки
- 30. удаляются символы из строки
да есть, подстрока() на основе длины струны – milan
Вы пробовали с помощью метода. substring (int begin, int end)? – Rohan
Каков трудный путь, который вы уже знаете? – Johnydep