java 空格转义字符_使用java中的空格对字符串进行标记

假设:

您的变量名称(赋值'a = b'中的'a')的长度可以是1或更长

您的变量名称(赋值'a = b'中的'a')不能包含空格字符,其他任何东西都可以。

不需要验证您的输入(输入假定为有效的a = b格式)

这对我来说很好。

输入:

a=b abc='123 456' &=777 #='uij yyy' ABC='slk slk' 123sdkljhSDFjflsakd@*#&=456sldSLKD)#(

输出:

a=b

abc='123 456'

&=777

#='uij yyy'

ABC='slk slk'

123sdkljhSDFjflsakd@*#&=456sldSLKD)#(

码:

import java.util.ArrayList;

import java.util.List;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class RegexTest {

// SPACE CHARACTER followed by

// sequence of non-space characters of 1 or more followed by

// first occuring EQUALS CHARACTER

final static String regex = " [^ ]+?=";

// static pattern defined outside so that you don't have to compile it

// for each method call

static final Pattern p = Pattern.compile(regex);

public static List tokenize(String input, Pattern p){

input = input.trim(); // this is important for "last token case"

// see end of method

Matcher m = p.matcher(input);

ArrayList tokens = new ArrayList();

int beginIndex=0;

while(m.find()){

int endIndex = m.start();

tokens.add(input.substring(beginIndex, endIndex));

beginIndex = endIndex+1;

}

// LAST TOKEN CASE

//add last token

tokens.add(input.substring(beginIndex));

return tokens;

}

private static void println(List tokens) {

for(String token:tokens){

System.out.println(token);

}

}

public static void main(String args[]){

String test = "a=b " +

"abc='123 456' " +

"&=777 " +

"#='uij yyy' " +

"ABC='slk slk' " +

"123sdkljhSDFjflsakd@*#&=456sldSLKD)#(";

List tokens = RegexTest.tokenize(test, p);

println(tokens);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值