A 32-year-old man has been charged with 18 counts of attempted murder after a car was driven at pedestrians outside one of Melbourne's major transport hubs.

Nine of the victims were foreign nationals and among them was a 25-year-old Irish woman who is in a stable condition in hospital, police said.

The man, who has not been named by Victoria Police, has also been charged with one count of conduct endangering life and is due before magistrates in Melbourne on Saturday.

A dozen people remain in hospital, three of whom are in a critical condition, after the incident outside Flinders Street station on Thursday.

Police previously said the suspect, an Australian citizen of Afghan heritage, had a history of mental illness and drug abuse.

Security will be boosted at England and Australia's fourth Ashes Test, which starts on Tuesday, as a result of the crash.