/ / Konwertuj tablicę znaków na tablicę int ze spacjami - java

Konwertuj tablicę znaków na tablicę int ze spacjami - java

Przeglądałem to wszystko.Mam tablicę char [10 20 30]. Chcę przekonwertować to na tablicę int lub ArrayList liczb całkowitych, tak aby moja tablica int stała się int [] charToInt = {10,20,30}; Potrzebuję wstępnych wskazówek, aby podejść do tego problemu. Nie chcę całego kodu. Tylko podpowiedź. I napiszę tę wskazówkę.

Z góry dziękuję

Odpowiedzi:

1 dla odpowiedzi № 1

Zaktualizowano: Oto działający przykład

import java.util.ArrayList;

public class Example {
public static void main(String[] args) {
char[] input = { "1", "0",  " ", "2", "0", " ", "3", "0"};
ArrayList<Integer> output = extractIntegers(input);

for (int i : output) {
System.out.println(i);
}
}

private static ArrayList<Integer> extractIntegers(char[] chars) {
int start = -1;
ArrayList<Integer> integers = new ArrayList<Integer>();
for (int i = 0; i < chars.length; i++) {
boolean isDigit = Character.isDigit(chars[i]);
if (start != -1 && !isDigit) {
integers.add(parseInt(chars, start, i));
start = -1;
} else if (start == -1 && isDigit) {
start = i;
}
}
if (start != -1) {
integers.add(parseInt(chars, start, chars.length));
}
return integers;
}

private static int parseInt(char[] chars, int start, int stop) {
return Integer.parseInt(new String(chars, start, stop - start));
}
}
  1. Zapisz ten kod w pliku o nazwie Example.java
  2. Skompiluj to $ javac Example.java
  3. Uruchom $ java Example

1 dla odpowiedzi nr 2

Sposób na konwersję char tablica ze strukturą {"number", " ", "number", " ", ... } do int tablica będzie:

public static int[] toIntArray(final char[] source) {
if (source == null || source.length == 0) { // check for null or empty array
return new int[0];
}

final String sourceAsStr = String.copyValueOf(source); // convert array to string
final String[] numbers = sourceAsStr.split(" "); // split string on "space"; each part contains a number
final int[] result = new int[numbers.length];

for(int i = 0; i < numbers.length; i++) {
try {
result[i] = Integer.parseInt(numbers[i]);
} catch (final NumberFormatException e) {
// handle exception
return new int[0]; // return empty array on exception
}
}
return result;
}

Przykład:

System.out.println(Arrays.toString(toIntArray(new char[] {"1", "0", " ", "2", "0", " ", "3", "0"})));
System.out.println(Arrays.toString(toIntArray(new char[] {"1", "0", "-", "2", "0", "-", "3", "0"})));
System.out.println(Arrays.toString(toIntArray(null)));

Wynik:

[10, 20, 30]
[]
[]

-2 dla odpowiedzi nr 3

Spójrz na String.split:

http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String)

i Integer.parseInt: http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html#parseInt(java.lang.String)