#java #python #jenkins-groovy #groovy-console #groovy-eclipse
Вопрос:
пожалуйста, найдите изображение, которое у меня есть строка вроде этого : Здравствуйте,1,2 Мира,6,дом 7,10,11 я хочу, чтобы мой выход, как : Привет, Мир дому 1 6 10 2 7 11 ниже мой код: деф а = «Привет,1,2 Мира,6,дом 7,10,11″; а=а.заменить(‘,’,»п») запросы(а)
Комментарии:
1. Пожалуйста, правильно отформатируйте свой код (подсказка: используйте
{}
кнопку). Скриншоты кода не могут быть приняты при переполнении стека. Затем исправьте очевидную синтаксическую ошибку.2. Что вы пробовали до сих пор? Есть ли какая-то конкретная проблема, с которой вы столкнулись? Подсказка: Разбейте строку на массив с помощью
array = a.split(",");
, затем проверьте, какие из них являются числами, и отсортируйте их соответственно.
Ответ №1:
Вы можете просто сделать string.split(',')
, чтобы получить список, и ' '.join(string.split(','))
получить строку из всех этих элементов, разделенных точкой ' '
. Это очень простое разделение, для более сложного синтаксического анализа используйте csv
модуль.
Этот ответ предназначен для Python. Я не знаю, почему у вас есть и java
то, и python
другое в качестве тегов.
Ответ №2:
Вы не можете сгенерировать этот вывод логически, так как нет (очевидного) способа определить порядок целых чисел.
Однако, если вы просто хотите изолировать слова и целые числа, а затем соединить их вместе в том порядке, в котором они были определены, это можно сделать.
Маркеры в вашей начальной строке разделены не просто запятыми, поэтому метод разделения, предложенный в предыдущих ответах, не сработает. Вам нужно будет использовать модуль регулярных выражений, таким образом:
import re
d = 'Hello,1,2 World,6,7 Home,10,11'
w = ''
n = ''
for token in re.split(',| ', d):
try:
int(token)
n = token ' '
except ValueError:
w = token ' '
print(w n.rstrip())
Результатом этого будет: Привет, Мир, Дом 1 2 6 7 10 11
Комментарии:
1. Обратите внимание, что вы можете сделать это логически, попытавшись разобрать строки на целые числа и просто добавить/переместить допустимые целые числа в конец массива.
2. Пожалуйста, просмотрите исходный вопрос в отношении требований к входным данным и выходным данным и обратите внимание, что целочисленные маркеры отображаются в выходных данных в порядке, отличном от входного
Ответ №3:
public static void main(String[] args) {
String a = "Hello,1,2 World,6,7 Home,10,11";
StringBuffer sb1 = new StringBuffer();
StringBuffer sb2 = new StringBuffer();
StringBuffer sb3 = new StringBuffer();
String[] ar = a.split(",");
for (int i = 0; i < ar.length; i ) {
if(ar[i].contains(" ") amp;amp; isNumeric(ar[i].split(" ")[0])){
sb1.append(ar[i].split(" ")[0] " ");
sb2.append(ar[i].split(" ")[1] " ");
} else if(isNumeric(ar[i])){
sb3.append(ar[i] " ");
} else{
sb2.append(ar[i] " ");
}
}
System.out.println(sb2 "" sb3 "" sb1);
}
public static boolean isNumeric(String strNum) {
if (strNum == null) {
return false;
}
try {
double i = Integer.parseInt(strNum);
} catch (NumberFormatException nfe) {
return false;
}
return true;
}
ты должен попробовать это.