기본적으로 문자열을 가져 와서 알파벳의 각 문자를 바꾸지 만 공백은 그대로두고 "null"로 변환하지 않습니다. 문자열,이 질문을 여는 주된 이유입니다.StringBuffer 추가 공백 ("") 대신 "null"을 추가합니다.
"ALPHA BETA"대신 "ALPHAnullBETA"가 표시되는 대신 아래 함수를 사용하여 "a b"문자열을 전달하십시오.
현재 반복되는 개별 문자가 공백인지 확인하는 방법을 시도했지만 아무 것도 작동하지 않는 것 같습니다. 이러한 모든 시나리오는 일반 문자처럼 거짓을 표시합니다. 문자열이 동일한 경우
public String charConvert(String s) {
Map<String, String> t = new HashMap<String, String>(); // Associative array
t.put("a", "ALPHA");
t.put("b", "BETA");
t.put("c", "GAMA");
// So on...
StringBuffer sb = new StringBuffer(0);
s = s.toLowerCase(); // This is my full string
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
String st = String.valueOf(c);
if (st.compareTo(" ") == 1) {
// This is the problematic condition
// The script should just append a space in this case, but nothing seems to invoke this scenario
} else {
sb.append(st);
}
}
s = sb.toString();
return s;
}
compareTo는 객체가 동일한 경우 0을 반환합니다. –
Character.isWhitespace (c)를 사용할 수 있습니다. –
StringBuilder를 사용할 수있는 경우 StringBuffer를 사용하지 마십시오. –