web-dev-qa-db-fra.com

comment diviser la chaîne en chaîne et entier en java

J'ai le String a="abcd1234" et je souhaite le scinder en String b="abcd" et Int c=1234. Ce code Split devrait s'appliquer à toutes les entrées majeures, telles que ab123456 et acff432, etc. Comment diviser ce genre de cordes. C'est possible?

7
karthi

Vous pouvez essayer de diviser une expression régulière telle que (?<=\D)(?=\d). Essaye celui-là:

String str = "abcd1234";
String[] part = str.split("(?<=\\D)(?=\\d)");
System.out.println(part[0]);
System.out.println(part[1]);

va sortir

abcd
1234

Vous pouvez analyser le chiffre String en Integer avec Integer.parseInt(part[1]).

16

Vous pouvez faire le prochain:

  1. Divisé par une regex comme split("(?=\\d)(?<!\\d)")
  2. Vous avez un tableau de chaînes avec cela et il vous suffit de l'analyser.
3
Javier Diaz

Utilisez une expression régulière:

Pattern p = Pattern.compile("([a-z]+)([0-9]+)");
Matcher m = p.matcher(string);
if (!m.find())
{ 
  // handle bad string
}
String s = m.group(1);
int i = Integer.parseInt(m.group(2));

Je n'ai pas compilé cela, mais vous devriez avoir l'idée.

2
SimonC

Utilisez regex "[^ A-Z0-9] + | (? <= [AZ]) (? = [0-9]) | (? <= [0-9]) (? = [AZ] ) "pour diviser la piqûre en alphabets et en chiffres.

par exemple.

String str = "ABC123DEF456";

Ensuite, la sortie en utilisant cette expression rationnelle sera:

ABC 123 DEF 456

Pour le code complet, veuillez visiter l'URL suivante:

http://www.zerotoherojava.com/split-string-by-characters-and-numbers/

0
Mohit Tyagi

Une solution de force brute.

String a = "abcd1234";
int i;
for(i = 0; i < a.length(); i++){
    char c = a.charAt(i);
    if( '0' <= c && c <= '9' )
        break;
}
String alphaPart = a.substring(0, i);
String numberPart = a.substring(i);
0
johnchen902