Este artigo apresenta o uso de java string formating-string.format (), como segue:
Formato de tipos regulares
O método format () da classe String é usado para criar strings formatados e concatenar vários objetos de string. Os alunos familiarizados com o idioma C devem se lembrar do método sprintf () da linguagem C, e há semelhanças entre os dois. O método format () possui dois formulários sobrecarregados.
Format (String Format, Object ... args) New String usa a localidade local para criar formatos e parâmetros de string para gerar novas cadeias formatadas.
Format (Locale Locale, String Format, Object ... args) Use o local especificado para criar formatos e parâmetros de sequência para gerar seqüências formatadas.
Mostre conversores diferentes para implementar a conversão de diferentes tipos de dados em strings, como mostrado na figura.
Conversor | ilustrar | Exemplo |
%s | Tipo de string | "Mingrisoft" |
%c | Tipo de caractere | 'm' |
%b | Tipo booleano | verdadeiro |
%d | Tipo inteiro (decimal) | 99 |
%x | Tipo inteiro (hexadecimal) | Ff |
%o | Tipo inteiro (octal) | 77 |
%f | Tipo de ponto flutuante | 99.99 |
%um | Tipo de ponto flutuante hexadecimal | FF.35AE |
%e | Tipo de índice | 9.38e+5 |
%g | Tipos gerais de ponto flutuante (mais curto dos tipos F e E) | |
%h | Código de hash | |
%% | Tipo de porcentagem | % |
%n | Quebras de linha | |
%tx | Tipo de data e hora (x representa diferentes caracteres de conversão de data e hora |
Casos de teste
public static void main (string [] args) {string str = null; str = stringFormat ("oi,%s", "wang li"); SystemOutPrintln (STR); str = stringFormat ("HI,%s:%s%s", "wang nan", "wang li", "wang zhang"); SystemOutPrintln (STR); SystemOutprintf ("A letra maiúscula A é: %C %n", 'A'); SystemOutprintf ("3> 7 O resultado é: %b %n", 3> 7); SystemOutprintf ("Metade de" 100 é: %d %n ", 100/2); Systemoutprintf (" 100 do número hexadecimal de 100 é: %x %n ", 100); SystemOutprintf (" número angular de 100 é: %o %n ", 100); O preço acima é: %a %n ", 50*85); SystemOutprintf (" O índice do preço acima representa: %e %n ", 50*85); SystemOutPrintf (" O comprimento mais curto do índice do preço acima e do número de ponto flutuante é: %g %n, 50*85); SystemPrintf ("o número de desconto é: %G %n" 50*85); Código de hash da letra A é: %h %n ", 'a');}Resultado de saída
Oi, Wang Li Hi, Wang Nan: Wang Li Wang Zhang A letra A é capitalizada: A 3> 7 O resultado é: Falso metade de 100 é: 50 100 IS: 64 100 é 80 144 50 Yuan Livro 5 Desconto é: 500000 yuan O número hexadecimal acima é: 0x54p5 O índice acima do Índice é expresso: 2500, o número de hexadecimal: 0x54p5 O Índice acima é expresso: 2500 ia. O desconto acima é de 85% o código de hash da letra A é: 41
O logotipo emparelhado com o símbolo de conversão é mostrado na figura.
| Logotipo | ilustrar | Exemplo | resultado |
| + | Adicione símbolos para números positivos ou negativos | ("%+d", 15) | +15 |
| - | Deixado alinhado | ("%-5d", 15) | | 15 | |
| 0 | Adicione 0 antes do número | ("%04d", 99) | 0099 |
| Espaços | Adicione um número especificado de espaços antes de um número inteiro | ("% 4d", 99) | | 99 | |
| , Assim, | Números de grupo com "," | ("%, f", 9999,99) | 9.999.990000 |
| ( | Use suportes para incluir números negativos | ("%(f", -99,99) | (99.990000) |
| # | Se for um ponto flutuante, ele contém um ponto decimal. Se for hexadecimal ou envolvente, adiciona 0x ou 0 | ("%#x", 99) | ("%#O", 99) |
| < | Formate os parâmetros descritos pelo conversor anterior | (" %f e %<3,2f", 99,45) | 99.450000 e 99.45 |
| $ | Índice de parâmetros formatados | ("%1 $ d,%2 $ s", 99, "ABC") | 99, ABC |
Casos de teste
public static void main (string [] args) {string str = null; // $ use str = stringFormat ("Use o parâmetro de formato $: %1 $ d, %2 $ s", 99, "ABC"); SystemOutPrintln (STR); //+use o SystemOutprintf ("Símbolos mostrando números positivos e negativos: %+d e %d %n", 99, -99); // completo ouse SystemOutPrintf ("O número mais impressionante é: %03d %n", 7); // Use SystemOutPrintf ("O efeito da tecla TAB é: %8d %n", 7); // usa SystemOutPrintf ("O efeito do agrupamento inteiro é: %, d %n", 9989997); // Espaço e número de ponto decimal SystememOutprintf ("O preço de um livro é: % 5f yuan % n", 8); }Resultado de saída
O uso do parâmetro de formato $: 99, símbolos ABC que exibem números positivos e negativos: +99 e -99 O número mais impressionante é: 007 O efeito da chave da guia é: 7 O efeito do agrupamento inteiro é: 9.989.997 O preço de um livro é: 80.000 yuan
Formatação de string de data e evento
Hora e data são frequentemente necessárias para exibir na interface do programa, mas o formato da tela geralmente é insatisfatório. Uma grande quantidade de código é necessária para passar por vários algoritmos para obter o formato ideal de data e hora. Há também um conversor %TX no formato da string que não é detalhado, ele é especialmente usado para formatar datas e horários. X no conversor %TX representa um conversor adicional que processa os formatos de data e hora, e suas combinações podem formatar a data e a hora em vários formatos.
Formatos comuns para combinações de data e hora, conforme mostrado na figura.
| Conversor | ilustrar | Exemplo |
| c | Inclui todas as informações de data e hora | Sábado, 27 de outubro 14:21:20 CST 2007 |
| F | Formato "durante o mês do dia" | 2007-10-27 |
| D | Formato "mês/dia/ano" | 27/10/07 |
| r | Formato "HH: MM: SS PM" (sistema de 12 horas) | 02:25:51 |
| T | Formato "HH: MM: SS" (sistema de 24 horas) | 14:28:16 |
| R | Formato "HH: MM" (sistema de 24 horas) | 14:28 |
Casos de teste
public static void main (string [] args) {data date = new Date (); // c usa o SystemUtPrintf ("Todas as informações sobre data e hora: %tc %n", data); // f usa o SystemUtPrintf ("formato do dia do mês do dia: %tf %n", data); // D usa o SystemUtprintf ("Formato Mês/Day/Ano: %TD %N", data); // r usa o SystemUtPrintf ("hh: mm: formato SS PM (12 Time System): %tt %n", data); // t usa o SystemUtPrintf ("HH: MM: Formato SS (sistema 24 de tempo): %tt %n", data); // r usa o SystemUtprintf ("HH: formato mm (formato 24 horas): %tr", data); }Resultado de saída
Todas as informações sobre data e hora: segunda-feira, 10 de setembro 10:43:36 Formato do dia de 2012 meses: 2012-09-10 Formato de mês/dia/ano: 09/10/12 HH: MM: SS PM Formato (12 O'Clock): 10:43:36 Manhã: MM: SS (MH (24 O'Clock): 10:43: 10:43:36 da manhã: MM: SS (24 de 24):
Um conversor que define o formato de data pode causar a data para gerar uma nova string através do conversor especificado. Esses conversores de data são mostrados na figura.
public static void main (string [] args) {data date = new Date (); // Uso de B, a abreviação do mês é String str = StringFormat (Localeus, "Abreviação do mês em inglês: %TB", data); SystemOutPrintln (STR); SystemOutprintf ("Abreviação do mês local: %TB %N", data); // Uso de B, Mês Nome completo str = StringFormat (Localeus, "Nome completo do mês em inglês: %TB", data); SystemOutPrintln (STR); SystemOutprintf ("Nome completo do mês local: %tb %n", data); // O uso de A, semana é abreviado como str = stringFormat (Localeus, "Abreviação da semana em inglês: %ta", data); SystemOutPrintln (STR); // o uso de um nome completo da semana SystemOutprintf ("Abreviação da semana local: %ta %n", data); // O uso de C, dois dígitos SystemOutprintf ("Os dois primeiros dígitos do ano (menos de dois dígitos antes do primeiro): %tc %n", data); // o uso de y, dois dígitos SystemOutprintf ("Os dois últimos dígitos do ano (menos de dois dígitos antes do primeiro): %ty %n", data); // j, o número de dias em um ano SystemUtprintf ("dias em um ano (ou seja, o dia do ano): %tj %n", data); // m, o mês SystemutPrintf ("mês de dois dígitos (menos de dois dígitos antes de 0): %tm %n", data); // D, o dia (dois dígitos, não o suficiente para compensar o zeros) SystemutPrintf ("Dia de dois dígitos (menos de dois dígitos antes de 0): %td %n", data); // e, o dia (um dígito antes de 0) SystemUtprintf ("Dia de dois dígitos (menos de dois dígitos antes de 0): %td %n", data); // e, o dia (um dígito antes de 0) SystemutPrintf ("Dia do mês (não é suficiente para compensar os zeros): %te", data); }Resultado de saída
English month abbreviation: Sep Local month abbreviation: September English month full name: September full name: September English week abbreviation: Mon Local week abbreviation: The first two digits of the week (before less than two digits, add 0): 20 The last two digits of the year (before less than two digits, add 0): 12 The number of days in the year (that is, what day of the year): 254 The month of the two digits (before less de dois dígitos, adicione 0): 09 O dia dos dois dígitos (antes de menos de dois dígitos, adicione 0): dia de outubro (antes de menos de dois dígitos, adicione 0): 10
Comparado com os conversores de formato de data, os conversores de formato de tempo são cada vez mais precisos. Ele pode formatar o tempo em unidades como horas, minutos, segundos e até horas de hora. O conversor para formatar a sequência de tempo é mostrado na figura.
| Conversor | ilustrar | Exemplo |
| H | Número de 2 dígitos 24 horas (abaixo de 2 dígitos, 0 é adicionado antes do primeiro) | 15 |
| EU | Número de 2 dígitos 12 horas (menos de 2 dígitos antes de adicionar 0) | 03 |
| k | Número de 2 dígitos 24 horas tempo (0 não foi adicionado antes) | 15 |
| l | Número de 2 dígitos 12 horas (0 não foi adicionado antes) | 3 |
| M | Ata de 2 dígitos (menos de 2 dígitos antes de adicionar 0) | 03 |
| S | Segundos de 2 dígitos (abaixo de 2 dígitos, adicione 0 na frente) | 09 |
| L | Milissegundos de 3 dígitos (menos de 3 dígitos antes de adicionar 0) | 015 |
| N | O número de milissegundos de 9 dígitos (abaixo de 9 dígitos, adicione 0 antes) | 562000000 |
| p | Marcas de manhã ou da tarde para letras minúsculas | Média: tarde Inglês: PM |
| z | Deslocamento em relação ao fuso horário RFC822 da GMT | +0800 |
| Z | String de abreviação de fuso horário | Cst |
| s | 1970-1-1 00:00:00 O número de segundos passados até agora | 1193468128 |
| Q | 1970-1-1 00:00:00 O número de milissegundos passados até agora | 1193468128984 |
Código de teste
public static void main (string [] args) {data date = new Date (); // h usa o sistema SystemUtPrintf ("Sistema de tempo de 24 horas de 2 dígitos (antes de 0 se menos de 2 dígitos): %th %n", data); // eu usa o sistema SystemUtPrintf ("Sistema de 2 horas de 12 horas (antes de 0 se menos de 2 dígitos): %ti %n", data); // k usa o sistema SystemUtPrintf ("Sistema de 2 dígitos de 24 horas (antes de 0 se não 0, se não 0, se não for 0 se não 0, se não 0, se não for L"); // L usa o SystemUtPrintf ("2 dígitos de 12 horas de tempo (// antes de 0, se não 0, se não 0, se não 0 se não 0 %tm %n ", data); // s usa o SystemUtPrintf (" Segundos de 2 dígitos (antes de 0 se menos de 2 dígitos): %ts %n ", data); // l usa SystemUtprintf (" Minutos de 3 dígitos (antes de 0 se menos de 3 dígitos): %Tl %N ", Data); // N u usa SystemutPRF (" %tn %n ", data); // p usa string str = stringFormat (Localeus," Marcas da manhã ou da tarde de letras minúsculas (inglês): %tp ", data); systemoutprintln (str); systemOutprintf (" Mornings da manhã ou das marcas da tarde de letters de maneira baixa e de maneira que é de que 19 anos de fita (str); %tz %n ", data); // u usa systemoutprintf (" string de abreviação de fuso horário: %tz %n ", data); // S Usar SystemOutPrintf ("1970-1-1 00:00:00 O número de segundos passados até o presente: %ts %n", data); // Q's Usar SystemOutPrintf ("1970-1-1 00:00:00 O número de milissegundos que passaram até agora: %TQ %n", data); }Resultado de saída
2-digit 24 hour hours (before 0 if less than 2 digits): 11 2-digit 12 hour hours (before 0 if less than 2 digits): 11 2-digit 24 hour hours (before 0 if less than 2 digits): 11 2-digit 12 hour hours (before 0 if less than 2 digits): 11 2-digit 12 hour hours (before 0 if less than 2 digits): 11 2-digit digit minutes (before 0 if less than 2 digits): 03 Dígitos de 2 dígitos segundos (antes de 0 se menos de 2 dígitos): 52 dígitos de 3 dígitos milissegundos (antes de 0 se menos de 3 dígitos): 773 dígitos de 9 dígitos milissegundos (antes de 0 de metrô de Morning (7730000.000 marcas de manhã ou de média em inglês): AM de 9 anos de manhã ou da manhã, Letter Letter Letter Monting Letter para a manhã ou a tarde, para menos de 9 anos de manhã, letra-se da manhã. RFC822 Fuso horário: +0800 String de abreviação do fuso horário: CST 1970-1-1 00:00:00 O número de segundos passados até o presente: 1347246232 1970-1-1 00:00:00 O número de milissegundos passados até o presente: 1347246227773
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.