Java中如何拆分字符串之间的数字和字母

Java中如何拆分字符串之间的数字和字母,问题表述:提供了字母和数字的列表。如何使用字母和数字之间的边界分割字符串,并反过来将其分割为字母或数字的子字符串。

不使用预定义函数拆分字符串

将字符串str分成三个段:一个数字段;一个字母部分;和一个带有特殊字符的段。

示例

1) Input : Java234T678point78!!!!
Output :JavaTpoint
        23467878
        !!!!
这里str = "Java567T123point!!!",每个字符都被扫描,字符串的res1、res2和res3被适当地追加。
2) Input : **Java345T78point9##
Output: JavaTpoint
        345789
        **##

步骤

  1. 确定字符串的长度。
  2. 分别扫描字符串中的每个字符(ch) 如果(ch是一个数字),将它添加到res1字符串中。 或者,如果(ch是一个字母),向res2添加一个字符串。 否则将其添加到字符串res3中。
  3. 打印每一个字符串。我们将有三个字符串:一个带有数字成分,一个没有数字成分,还有一个带有特殊字符。

实现

// java program to split an alphanumeric  
// string using Stringbuffer  
class check  
{  
static void splitString(String str)  
    {  
StringBuffer alpha = new StringBuffer(),   
        num = new StringBuffer(), special = new StringBuffer();  
        for (int i=0; i<str.length(); i++)  
{  
            if (Character.isDigit(str.charAt(i)))  
                num.append(str.charAt(i));  
else if(Character.isAlphabetic(str.charAt(i)))  
                alpha.append(str.charAt(i));  
else  
                special.append(str.charAt(i));  
        }  
System.out.println(alpha);  
System.out.println(num);  
System.out.println(special);  
 }  
 // Driver method  
public static void main(String args[])  
    {  
String str = "Java234T567point890@#!!";  
splitString(str);  
}  
}  

输出:

Java中如何拆分字符串之间的数字和字母

时间复杂度:前一种方法的时间复杂度是O(n),其中n是字符串的长度。

辅助空间:give code的空间复杂度为O(n),其中n为字符串的长度。

我们也可以用正则表达式拆分字符串,比如(?<=\D)(?=\ D)。是这样的:

public class JavaTpoint{
     public static void main(String []args){
     String str = "Javatpoint12345";
String[] part = str.split("(?<=\\D)(?=\\d)");
System.out.println(part[0]);
System.out.println(part[1]);
     }
}

输出:

Java中如何拆分字符串之间的数字和字母

所以有很多方法可以在数字和字符之间分割字符串:

方法: 1

public class JavaTpoint{
     public static void main(String []args){
    String st = "JavaTpoint123456789";
String st1=st.replaceAll("[^A-Za-z]", "");
String st2=st.replaceAll("[^0-9]", "");
System.out.println("String b = "+st1);
System.out.println("Int c = "+st2);
     }
}

输出:

Java中如何拆分字符串之间的数字和字母

方法: 2

public class JavaTpoint{
     public static void main(String []args){
 String input_string = "JavaTpoint98765";
String string_output=input_string.replaceAll("[^A-Za-z]", "");
int number_output=Integer.parseInt(input_string.replaceAll("[^0-9]", ""));
System.out.println("string_output = "+string_output);
System.out.println("number_output = "+number_output);
     }
}

输出:

Java中如何拆分字符串之间的数字和字母

方法: 3

public class MyClass {
public static void main(String args[]) {
  String a = "java123point456";
    int i;
    String str1="";
    String str2="";
    for(i = 0; i < a.length(); i++){
             char c = a.charAt(i);
                if( '0' <= c && c <= '9' )
                         str1=str1+c;
                if( 'a' <= c && c <= 'z' )
                         str2=str2+c;
       }
   System.out.println(str1);
   System.out.println(str2);
   }}

输出:

Java中如何拆分字符串之间的数字和字母

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Java 示例