2013-09-25 3 views
0

현재 두 번째 큰 프로그래밍 프로젝트를 진행 중입니다. 막혔습니다. 이 프로젝트에서 Processing을 사용하고 있습니다.처리 중 구성 파일에서 정보 가져 오기

내가하려는 일은 다음 행을 포함하는 외부 텍스트 파일에서 특정 색상 표를 가로 막대 차트의 개별 '선'에 할당하는 데 사용 된 정보를 검색하는 것입니다. java.util.Properties 클래스 :

formating = p;p;n;n 

합니다 (BufferedInputStream을 처리 '가져 오기'라는 이름의 클래스 등 사용)는 다음과 같습니다 수입에 대한 나의 코드 :

Import imp = new Import(); 
Properties properties = imp.importSettings(); 

다음 단계를 텍스트 파일에서 'formating'행을 읽고 puts합니다. 세미콜론을 구분 기호로 사용하여 4 개의 요소 String 배열로 변환합니다.

String[] formating2 = {"p", "p", "n", "n"}; 

하지만 그것을하지 않습니다 :이 문자열 배열을 위해 기다리고 있었다

String[] formating = properties.getProperty("formating").split(";"); 

내가 사용 내 소스 코드를 작성하여 얻을 것 것과 동일합니다. 그것은 문자열 배열의 각 요소에서 원하지 않는 문자 (예를 들어 공백)를 검사하고, 텍스트 파일을 변환하거나, 유니 코드로 비교하기 위해 사용하는 문자를 변환하고, 문자열 배열의 요소를 Chars로 변환하는 등의 여러 가지 작업을 이미 시도했습니다. 에 대한 루프의 각 반복에 대한 'false'로 반환

for(int i=0;i < formating.length;i++){ 
println(formating[i]==formating2[i]); 
} 

: 나는 작업을 얻이 수없는 것 무엇

는 다음의 비교입니다.

필자는 신참 실수라고 확신하지만, 누군가 올바른 방향으로 나를 가리킬 수 있다면 좋을 것이다. 미리 감사드립니다! 문자열이 가능한 다른 개체와, 그들은 같은 "텍스트"를 포함하는 경우에 상관없이 본문 만 개체를 ​​비교하지 않습니다를 비교하기 때문에 ==를 사용

답변

2

비교 문자열은 안전하지 않습니다.

println(formating[i].trim().equals(formating2[i].trim())); 
: 당신이 여분의 공백과 탭 당신도 할 수있는 모든 모임을 피하려면

println(formating[i].equals(formating2[i])); 

또는 : 그래서, 당신은 이런 식으로 시도해야