在java中如何检查char后是否有空格

时间:2014-12-19 23:24:39

标签: java char

我试图查看某个字符后是否有空格,如果还没有我会计算++,如果有,那么它就赢了,我不知道怎么做!我在if语句中这样做,我知道如何检查这封信,但如果之后有空格则不知道。我尝试了这个,但它似乎没有用!

if ((letter == '#')&&(letter+1!='\t')&&(letter+1 != ' '))

3 个答案:

答案 0 :(得分:1)

在Java中,letter类型的char变量不是C中的指针。所以做letter+1只会给你下一个字母(如下一个字母表,不是你的字符串)#之后是$。因此,$永远不会与\t相等。

您可能希望获得下一个字符的方式与将字符放入letter - 的方式相同 - 作为单独的变量,并针对制表符和空格进行检查。像这样:

int position = 0;
char letter = mystring.charAt(position);
char next = mystring.charAt(position+1);

if (letter == '#' && next != '\t' && next != ' ')

这当然非常粗糙,容易出错,但我希望它能解释你当前的问题。

有更好的方法可以做你想做的事。

答案 1 :(得分:0)

只需迭代你的字符串并在空格之前收集角色......

public class CharCheck {

    public static void main( String[] args ) {

        String string = "Check for spaces after a char";

        List<Character> chars = new ArrayList<>( );

        for(int i = 0; i < string.length(); i++) {

            if( string.charAt( i ) == (' ') ) {
                chars.add( string.charAt( i - 1 ) );
            }

        }
        System.out.println("Characters with spaces after them :");
        for(Character character : chars) {
            System.out.print(  character );
        }

    }
}

RESULT

Characters with spaces after them :
krsra

答案 2 :(得分:0)

你试过java正则表达式吗?

    String input = "# input for test";
    Pattern pattern = Pattern.compile("#\\s");
    Matcher matcher = pattern.matcher(input);
    if (matcher.find()) {
        System.out.println("find");
    }