如何把一个字符串分割成多个字符串
下面两种方法均可以把一个字符串分割成多个字符串
一、Java
知识补充
String的split方法支持正则表达式;
正则表达式\s表示匹配任何空白字符,+表示匹配一次或多次。
- String str = "a b c d e f g"
- String [] arr = str.split("\\s+");for(String ss : arr){
- System.out.println(ss);
- }
有了以上补充知识,下面的内容就很好理解了。
一、待分割字符串
待分割字符串为如下:
其中,字符串中的的空白分别为:单个空格,多个空格,tab制表符。
二、使用一个或多个空格分割字符串
正确代码如下:
编写的程序
public static void main(String args[]) {
String line = "good12 morning34 good56 night78";
//对String进行split之后的数组的输出
String[] tt=line.split("\\s+");
for(String s:tt)
{
System.out.println(s);
}
System.out.println("#####");
}
输出结果为
good12
morning34
good56
night78
二、C语言
#include <stdio.h>
#include <conio.h>
#define MAX_X 20
#define MAX_Y 10
#define DIV_CHAR ' ' /*separator*/
void divString(char* string,char buffer[MAX_X][MAX_Y],int* pCount)
{
char* pChar;
int x,y;
for(pChar=string,x=0; x<MAX_X && *pChar; x++,(*pCount)++)
for(y=0; y<MAX_Y && *pChar; y++,pChar++)
{
if(DIV_CHAR == *pChar)
{
buffer[x][y] = '\0';
pChar ++;
break;
}
buffer[x][y] = *pChar;
}
buffer[*pCount-1][y] = '\0';
}
void main()
{
char string[100],buffer[MAX_X][MAX_Y];
int x,count = 0;
printf("Please enter one string:");
gets(string);
divString(string,buffer,&count);
printf("Before division:");
puts(string);
printf("After division:\n");
for(x=0; x<count; x++)
puts(buffer[x]);
getch();
}