wiem jak stworzyć tablicę łańcuchów lub liczb, ale w jaki sposób można utworzyć tablicę terminach:/Array od daty Java
Odpowiedz
ten sam sposób, co robisz na ciąg i Int, wystarczy umieścić różne rodzaje wewnątrz:
Date [] dates = {
new Date(),
new Date()
};
Deklarowano tablicę o rozmiarze dwa z dwoma datami.
Można również zainicjować z wartościami zerowymi:
Date [] dates = new Date[2];
lub dodać więcej istotnych wartości:
Date [] dates = {
getDateFromString("25/11/2009"),
getDateFromString("24/12/2009")
};
....
public Date getDateFromString(String s) {
Date result = ...// parse the string set the value etc.
return result;
}
EDIT
... ale czy jest tak ty może zakończyć to, co robiłeś w metodzie getDateFromString?
Oczywiście, początkowo nie, ponieważ moim celem było pokazanie, że można tam umieścić wszystko, co jest typu "Data".
Po prostu trzeba użyć metody SimpleDateFormate.parse() (dziedziczona z dateformat klasa)
simpleDateFormatInstance.parse("24/12/2009"); // returns christmas 2009.
Oto pełna próbka robocza:
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;
import static java.lang.System.out;
public class DateArrayTest {
private static final SimpleDateFormat dateFormat
= new SimpleDateFormat("dd/MM/yyyy");
private static final Date invalidDate = new Date(0);
// test creating a date from a string.
public static void main(String [] args) {
Date [] randomDates = {
fromString("01/01/2010"), // new year
fromString("16/09/2010"), // 200 yrs Mex indepence
fromString("21/03/2010"), // uhhmm next spring?
fromString("this/should/fail"), // invalid date.
};
for(Date date: randomDates) {
print(date);
}
}
/**
* Creates a date from the given string spec.
* The date format must be dd/MM/yyyy ie.
* 24 december 2009 would be: 24/12/2009
* @return invalidDate if the format is invalid.
*/
private static final Date fromString(String spec) {
try {
return dateFormat.parse(spec);
} catch(ParseException dfe) {
return invalidDate;
}
}
private static final void print(Date date) {
if(date == invalidDate) {
out.println("Invalid date");
} else {
out.println(dateFormat.format(date));
}
}
}
można użyć tablicę java.util.Date
(docs API są here)
Date[] dates = new Date[] {
new Date(),
new Date(),
};
Możesz cre jedli tablicę dowolnego typu obiektów w Javie - wszelkie odniesienia i prymitywne typy
Albo można użyć zbiorów API i kalendarz klasę
import java.util.*;
List<Calendar> dates = new ArrayList<Calendar>(5); // initial size
dates.add(Calendar.getInstance());
Można rozważyć (i to nie jest rzeczywistość, ale to rodzaj utworów w ten sposób), że prymitywy są czymś w tym stylu (ja rozumiem później ... czytaj dalej):
int.7, int.42 (nie skompiluje) gdzie int jest klasą (nie jest), a 7 i 42 są publicznymi statycznymi zmiennymi końcowymi (nie są).
i że łańcuchy są mniej więcej tak:.
String "Hello", String "świat" (nie będzie kompilować) gdzie String jest klasa (to jest) i "Hello" i "świat". są publicznymi statycznymi zmiennymi końcowymi (nie są).
Jeśli moja fałszywa rzeczywistość była prawda trzeba by mieć coś takiego:
// again, won't compile.
public class int
{
public static final int 7 = new int(7);
public static final int 42 = new int(42);
private final ??? data;
public int(??? val)
{
data = val;
}
}
i
// also will not compile
public class String
{
public final String "Hello" = new String("Hello);
public final String "world" = new String("world);
private final ??? data;
public String(final ??? val)
{
data = val;
}
}
teraz zrobić tablicę jak (wciąż nie skompilować):
int[] array = new int[] { int.7, int.42 };
String[] array = new String[] {String."Hello", String."world" };
W przypadku String moja alternatywna rzeczywistość byłaby bardzo głupia, ponieważ niemożliwe jest, aby klasa String miała z góry każdy możliwy ciąg (dla int jest to możliwe).
Więc chcemy pozbyć publicznych statycznych zmiennych końcowych STRING i to zrobić w zamian:
String[] array = new String[] { new String("Hello"), new String("world") };
teraz do rzeczywistości:
Gdy kompilator Javy, gdy widzi „Cześć” lub " world "robi coś podobnego do" new String ("Hello") "- jest nieco mądrzejszy, więc jeśli masz" Hello "20 razy w pliku, który ma tylko jedną kopię (i kilka innych rzeczy).
Kiedy mówisz:
new int[100]; you get an array of 100 ints all set to 0.
new String[100]; you get an array of 100 Strings all pointing to null.
new Data[100]; you get 100 Dates all pointing to null.
Ponieważ String oraz data te wskazują na null trzeba przydzielić nowy obiekt dla każdego z nich. Powodem, dla którego nie musisz mówić "nowy" za pomocą String, jest to, że kompilator traktuje to specjalnie. Powodem, dla którego nie musisz mówić "new" przez int, jest to, że jest to obiekt pierwotny zamiast obiektu.
Tak, łatwej odpowiedzi na to pytanie jest, trzeba przydzielić nową datę dla każdego elementu tablicy :-)
Czy chodziło Ci o wprowadzeniu tablicą dates.This kod pomogłoby ..
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Scanner;
public class Datinput {
public static void main(String args[]) {
int n;
ArrayList<String> al = new ArrayList<String>();
Scanner in = new Scanner(System.in);
n = in.nextInt();
String da[] = new String[n];
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
sdf.setLenient(false);
Date date[] = new Date[n];
in.nextLine();
for (int i = 0; i < da.length; i++) {
da[i] = in.nextLine();
}
for (int i = 0; i < da.length; i++) {
try {
date[i] = sdf.parse(da[i]);
} catch (ParseException e) {
e.printStackTrace();
}
}
in.close();
}
}
Spróbuj tego ...... :) –
- 1. Javascript Get sekwencyjne daty Array
- 2. Od Arraylist do Array
- 3. Konwertuj Json Array na normalny Java Array
- 4. Array różnice inicjalizacji java
- 5. Porównanie Java Array
- 6. JSON Array Java obiektów
- 7. Java Array w Jruby
- 8. java array thread-safety
- 9. Pierwsze dni od daty
- 10. Zmodyfikowana - od daty Format
- 11. ekstrakt roku od daty
- 12. Obliczanie lat od daty
- 13. Java - Jak uzyskać aktualną datę niezależną od daty systemowej?
- 14. Jak zmniejszyć jeden miesiąc od bieżącej daty i zapisać w zmiennej daty przy użyciu java?
- 15. Format daty JAVA
- 16. Java: Tablica Array End Koniec
- 17. (MongoDB Java) $ push into array
- 18. Java LinkedList to matlab array
- 19. Java ArrayList to Kotlin Array
- 20. IOS Swift. Czas od daty
- 21. 24 godzin od daty ciąg
- 22. Jak wyświetlić dni od Daty
- 23. Uzyskaj czas od ciągu daty
- 24. Odejmowanie od daty w VBA?
- 25. Pass Array od MVC do javascript?
- 26. Pandy data_range od daty zakończenia do daty początkowej
- 27. Powtarzaj dni, począwszy od x daty do daty zakończenia
- 28. Pierwszy dzień miesiąca od daty daty POSIXct za pomocą lubridate
- 29. JSON Array iteracja w systemie Android/Java
- 30. Zapytanie Java/MongoDB według daty
Czy możesz napisać pseudo kod, który chcesz. Być może Date [] = new Date [] {'2009-01-01', '2009-02-01'}, w ten sposób możemy lepiej odpowiedzieć na to pytanie. –