我有一个长字符串,我用空格分割它,在某些部分有多个空格,所以空格变成一个字符串。我创建了一个for循环并试图识别那些空格字符串以跳过它们,但不幸的是,我正在使用的代码找不到它们。
public static void main( String[] args ){
String s = "Monday Tuesday Wednesday 8:00 8:15 8:30 8:45 9:00 9:15 9:30 9:45 10:00 IT Service Mgt. F1.2 wkFeb2-wkMar23, wkApr13-wkMay11 IT Service Mgt. B180 wkFeb2-wkMar23, wkApr13-wkMay11 Strategic IT Mgt. F1.2 wkFeb2-wkMar23, wkApr13-wkMay11 10:15 10:30 10:45 11:00 Strategic IT Mgt. B145 wkFeb2-wkMar23, wkApr13-wkMay11 11:15 11:30 11:45 12:00 12:15 12:30 12:45 13:00 IT Service Mgt. B145 wkFeb2-wkMar23, wkApr13-wkMay11 IT Service Mgt. E7 wkFeb2-wkMar23, wkApr13-wkMay11 13:15 13:30 13:45 14:00 Sec. Penetration Testing B251 wkFeb2-wkMar23, wkApr13-wkMay11 Ent. Storage Sys. C129 wkFeb2-wkMar23, wkApr13-wkMay11 14:15 14:30 14:45 15:00 Ent. Storage Sys. C129 wkFeb2-wkMar23, wkApr13-wkMay11 15:15 15:30 15:45 16:00 Sec. Penetration Testing C136 wkFeb2-wkMar23, wkApr13-wkMay11 Ent. Storage Sys. C134x wkFeb2-wkMar23, wkApr13-wkMay11 16:15 16:30 16:45 17:00 17:15 17:30 17:45 ";
String[] parts = s.split(" ");
String space = " ";
for(int i=0; i<parts.length;i++)
{
if(parts[i].charAt(0) == ' ')
{
System.out.println("askdfhlghlaksjdgsdasasfasfasdfasd");
}
if(parts[i].compareTo(" ")==0){
System.out.print("asdfghgfdsaASDFGHGFDSASDFGHJKJHGFDSASDFGHJKJHGTFRD");
}
System.out.print(parts[i]);
}
}
答案 0 :(得分:3)
使用s.split("[ ]+")
的正则表达式,例如[ ]+
。
[\t ]+
表示至少与空格匹配一次。
如果要匹配至少出现一次的空格或制表符,可以使用{{1}}。
如果要跳过字符串开头或结尾的空格,请使用split。
这是trim
。
答案 1 :(得分:0)
使用以下正则表达式:
String parts = s.trim().split("\\s+");
parts
的输出:
[星期一,星期二,星期三,8:00,8:15,8:30,8:45,9:00,...]
现在,上面将允许标签和其他空格字符。要消除它们,你可以这样做:
String parts = s.trim().split(" +");