Я стараюсь сортировать только числовые элементы, которые находятся в массиве String. Я делаю это в java. Пожалуйста, помогите мне решить эту проблему.Сортировать только Числовые элементы из String Array в java?
Вот моя проблема
Для заданного набора символов, выбрать только целочисленные и отсортировать их в порядке убывания и положить в их положение оставляя позиции других символов нетронутыми. Изменение позиции должно состоять только из целых чисел, отличных от других символов.
Пример ввода: -
д, 1,4, с, 9,6
109,87,911, б, 645
77,19, # 95
8,99,14,2. , 5,6,49
Пример вывода: -
Случай # 1: д, 9,6, с, 4,1
Случай # 2: 911645109, б, 87
Случай # 3: 95, 77, №, 19,
Дело № 4: 99,49,14,8,6,5,2
Спасибо всем зрителям. Пожалуйста, помогите мне решить эту проблему в Java
Вот мой код, я пробовал До сих пор.
import java.util.Arrays;
import java.util.Iterator;
import java.util.ArrayList;
class alphaNumeric {
public static void main(String a[]) {
String s1[] = new String[9];
ArrayList l_numList = new ArrayList();
ArrayList l_strList = new ArrayList();
s1[0] = "1000.1";
s1[1] = "100";
s1[2] = "xBC100";
s1[3] = "XBB100";
s1[4] = "TEST";
s1[5] = "AYZ2100";
s1[6] = "99";
s1[7] = "90";
s1[8] = "1000";
System.out.print("Before sorting, numbers are ");
for(int i = 0; i < s1.length; i++)
{
System.out.print(s1[i]+" ");
}
System.out.println();
for (int i = 0; i < s1.length; i++) {
if (isNumber(s1[i])) {
l_numList.add(s1[i]);
} else {
l_strList.add(s1[i]);
}
}
Object[] l_objArray = (Object[]) l_numList.toArray();
int l_intArray[] = new int[l_objArray.length];
for (int i = 0; i < l_objArray.length; i++) {
l_intArray[i] = Integer.parseInt((String) l_objArray[i]);
}
Arrays.sort(l_intArray);
for (int i = 0; i < l_intArray.length; i++) {
System.out.println("after Numsort: " + l_intArray[i]);
}
System.out.print("After sorting, numbers are ");
for(int i = 0; i < l_intArray.length; i++)
{
System.out.print(l_intArray[i]+" ");
}
Object[] l_strArray = (Object[]) l_strList.toArray();
Arrays.sort(l_strArray);
for (int i = 0; i < l_strArray.length; i++) {
System.out.println("after Strsort: " + l_strArray[i]);
}
}
static boolean isNumber(String s) {
String validChars = "";
boolean isNumber = true;
for (int i = 0; i < s.length() && isNumber; i++) {
char c = s.charAt(i);
if (validChars.indexOf(c) == -1) {
isNumber = false;
} else {
isNumber = true;
}
}
return isNumber;
}
}
пожалуйста Попробовал бы, прежде чем мы сможем вам помочь !!! – StackFlowed
Вы должны показать нам некоторый код того, что вы пробовали до сих пор. – WonderWorld
О, извините. Я просто забыл поделиться своим Кодексом. Подожди секунду. Виноват. : D – Poudel