java - How to detect whitespace of operator -
i have problem code.
i want detect whitespace of operator " + "
, " +"
, "+ "
or "+"
.
i want output
- whitespace of operator "a"
how can modify code?
my code here.
scanner input = new scanner (new file(path file)); int plus1; int plus2; int plus3; int plus4; string splus = ""; while (in.hasnext()) { string line = in.nextline(); in.hasnextline(); loc++; if (line.length() > 0) { plus1 = -1; plus2 = -1; plus3 = -1; plus4 = -1; while (true) { plus1 = line.indexof(" + ", plus1 + 1); plus2 = line.indexof(" +", plus2 + 1); plus3 = line.indexof("+ ", plus3 + 1); plus4 = line.indexof("+", plus4 + 1); if (plus1 > 0) { splus = "a"; } if (plus2 > 0) { splus = "b"; } if (plus3 > 0) { splus = "c"; } if(plus4 > 0){ splus = "d"; } if ((plus1 < 0) || (plus2 < 0) || (plus3 < 0) || (plus4 < 0)) break; } } }
there 2 problems logic:
- you using
trim()
inline.indexof(" +".trim(), plus2+1)
, returns index of"+"
not" +"
- any 1 occurrence of
" + "
counted 4 times, becauseline.indexof(" +")
count occurrences of" + "
for 2. easier use line.indexof('+')
, , check before , after index see how many whitespaces there are:
int plus = line.indexof('+'); if(plus == -1) break; if(line.charat(plus-1) == ' ') { if(line.charat(plus+1) == ' ') //a; else //b; } else if(line.charat(plus+1) == ' ') { //c } else { //d }
Comments
Post a Comment