我试图查看某个字符后是否有空格,如果还没有我会计算++,如果有,那么它就赢了,我不知道怎么做!我在if语句中这样做,我知道如何检查这封信,但如果之后有空格则不知道。我尝试了这个,但它似乎没有用!
if ((letter == '#')&&(letter+1!='\t')&&(letter+1 != ' '))
答案 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 );
}
}
}
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");
}