String,StringBuilder e StringBuffer
personagem de escape
Todos os caracteres de escape e seus significados correspondentes:
personagem de escape | significado | Valor ASCII (decimal) |
---|---|---|
\b | Backspace (BS), move a posição atual para a coluna anterior | 008 |
\f | Alimentação de formulário (FF), mova a posição atual para o início da próxima página | 012 |
\n | Alimentação de linha (LF), move a posição atual para o início da próxima linha | 010 |
\r | Retorno de carro (CR), move a posição atual para o início da linha | 013 |
\ t | Guia horizontal (HT) (pula para a próxima posição TAB) | 009 |
\v | Tabulação Vertical (VT) | 011 |
\ | Representa um caractere de barra invertida ''' | 092 |
' | Representa um caractere de aspas simples (apóstrofe) | 039 |
" | representa um caractere de aspas duplas | 034 |
\0 | Caractere nulo (NULL) | 000 |
\ddd | Qualquer caractere representado por 1 a 3 números octais | octal de três dígitos |
\uhhhh | Qualquer caractere representado por 1 a 2 números hexadecimais | binário hexadecimal |
O valor de String não pode ser alterado, toda vez que uma operação for realizada em String, um novo objeto String será gerado, o que além de ineficiente, também desperdiça espaço de armazenamento.
StringBuilder e StringBuffer são strings de comprimento variável.
StringBuilder e StringBuffer. Qualquer manipulação de string direcionada a ele não resultará em um novo objeto. Cada objeto tem uma certa capacidade de buffer. Quando o tamanho da string não exceder a capacidade, nenhum novo conteúdo será alocado. Quando o tamanho da string exceder a capacidade, a capacidade será aumentada automaticamente.
StringBuilder é uma string de operação de thread único.
SrtingBuffer é uma string usada em operações multi-threaded.
É mais rápido usar StringBuilder em um único thread, mas não pode ser usado em vários threads.
Determina se a string está em branco
" ".isBlank(); // true
Remova os espaços iniciais e finais.trim()
" Javastack ".strip(); // "Javastack"
Tira os espaços à direita
" Javastack ".stripTrailing(); // " Javastack"
Remova o espaço inicial
" Javastack ".stripLeading(); // "Javastack "
Copie a string
"Java".repeat(3); // "JavaJavaJava"
Contagem de linhas
"A\nB\nC".lines().count(); // 3
número de série | descrição do método |
---|---|
1 | public StringBuffer append(String s) Anexa a string especificada a esta sequência de caracteres. |
2 | public StringBuffer reverse() Substitui esta sequência de caracteres por sua forma invertida. |
3 | public StringBuilder delete(int start, int end) Remove caracteres em substrings desta sequência. |
4 | public insert(int offset, int i) Insere a representação de string do int argumento nesta sequência. |
5 | insert(int offset, String str) insere a string do str argumento nesta sequência. |
6 | replace(int start, int end, String str) Substitui os caracteres na substring desta sequência pelos caracteres no String dado . |
1 | int capacidade() Retorna a capacidade atual. |
---|---|
2 | char charAt(int index) Retorna char o valor . |
3 | void assegurarCapacity(int MinimumCapacity) Garante que a capacidade seja pelo menos igual ao mínimo especificado. |
4 | void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) Copia os caracteres desta sequência para a matriz de caracteres de destino dst . |
5 | int indexOf(String str) Retorna o índice dentro desta string da primeira ocorrência da substring especificada. |
6 | int indexOf(String str, int fromIndex) Retorna o índice dentro da string da primeira ocorrência da substring especificada, começando no índice especificado. |
7 | int lastIndexOf(String str) Retorna o índice dentro desta string da ocorrência mais à direita da substring especificada. |
8 | int lastIndexOf(String str, int fromIndex) Retorna a posição da última ocorrência da substring no objeto String. |
9 | int length() Retorna o comprimento (número de caracteres). |
10 | void setCharAt(int index, char ch) Define o caractere no índice fornecido como ch . |
11 | void setLength(int newLength) Define o comprimento da sequência de caracteres. |
12 | CharSequence subSequence(int start, int end) Retorna uma nova sequência de caracteres que é uma subsequência desta sequência. |
13 | String substring(int start) Retorna uma nova String subsequência dos caracteres atualmente contidos nesta sequência de caracteres. |
14 | String substring(int start, int end) Retorna uma nova String subsequência contendo os caracteres atualmente contidos nesta sequência. |
15 | String toString() Retorna uma representação de string dos dados nesta sequência. |
Gere aleatoriamente 123456789 e "", "-", "+" para conectar e calcular a saída do resultado
public static void main(String[] args) {
StrA1Fb saf1 = new StrA1Fb();
long cishu = 0;
int jishi = 0;
int chenggong = 0;
while (true) {
jishi++;
String s1 = saf1.formula();
int sum = saf1.addition1(s1);
if (sum == 100) {
System.out.printf("%s=100(循环了%d)\n", s1, jishi);
chenggong++;
cishu += jishi;
jishi = 0;
}
if (chenggong >= 11) {
break;
}
}
System.out.println(cishu);
}
public String formula() {
Random rand = new Random();
String[] s1 = {
"", "+", "-"};
StringBuilder sb1 = new StringBuilder();
for (int i = 1; i < 9; i++) {
sb1.append(String.format("%d%s", i, s1[rand.nextInt(s1.length)]));
}
sb1.append("9");
return sb1.toString();
}
public int addition1(String str) {
int sum = 0;
Pattern p = Pattern.compile("-?\\d+");
Matcher m = p.matcher(str);
while (m.find()) {
String t = m.group();
sum += Integer.parseInt(t);
}
return sum;
}
- length() o número de caracteres
- método equals equalsIgnoreCase
- método de corte
- substring方法
- concat()方法用于将指定的字符串参数连接到字符串上。
- contains() 判断是否包括某字符串,返回的是true false
- indexOf()返回子串的位置索引,没有返回-1
- lastIndexOf() 返回子串的位置索引,没有返回-1
- replace()替换返回
- split()拆分为String[]
- toLowerCase() toUpperCase()转换小写大写