특정 String xmlMatch에 대해 Hashtable을 검색하는 데 문제가 있습니다. 이것은 특정 div 태그의 내용에서 파생되었습니다.Hashtable에서 문자열 검색 - Java
XML을 검색하고 String xmlMatch를 정의하는 데 사용하는 코드가 포함되어 있습니다. 나는 이것이 옳다고 믿으며 화면에 그것을 인쇄함으로써 보여 주었다. 나는 이것이 단순해야 함을 안다. 빠른 테스트 Hashtable을 만들었으며 같은 것을 사용합니다.
내 테스트 코드
일 -DOS
사실 이클립스의 콘솔에 다음과 같은 예상대로
String xmlMatch2 = "Two";
Hashtable<String, String> table2 = new Hashtable <String, String>();
table2.put("One", "Uno");
table2.put("Two", "Dos");
table2.put("Three", "Tres");
System.out.println(table2.containsKey(xmlMatch2));
String n = table2.get("Two");
System.out.println(n);
작품
작동 인쇄내 생산 CODE -
작동하지 않음if(startPosition >1)
{
out.println("startPosition is greater or equal to 1 ");
int subStringIndex = startPosition + startTag.length();
subStringIndex = subStringIndex + 2; // +2 is necessary to remove "> after sliceXML
out.println(subStringIndex);
int endPosition = testContent.indexOf(endTag, subStringIndex);
out.println(endPosition);
if(endPosition >= startPosition)
{
xmlMatch = testContent.substring(subStringIndex, endPosition);
//out.println("This is my xmlMatch " + xmlMatch); //prints Florida
}
,
(활성화) 위의 인쇄 문은 xmlMatch 난 후 간단한 해시 테이블
내 문제가 시작하는 곳입니다Hashtable<String, String> table = new Hashtable<String, String>();
table.put("Florida","/PathToFile.txt");
table.put("Telescope","/PathToFile2.txt");
table.put("Galaxy","/PathToFile3.txt");
을 구현 플로리다
되었음을 확인 화면에 거짓
out.println(table.containsKey(xmlMatch));
위의 인쇄 문 인쇄 - 난 플로리다는 해시 테이블에 같아지는 것이 xmlMatch true로 인쇄해야합니다 생각합니다.
String n = table.get(xmlMatch);
out.println(n);
그리고는 null 인쇄 -이 인쇄한다고 생각 나는 단순히 그러나이 경우
/PathToFile.txt이
out.println(xmlMatch);
그것은 다시 한 번 화면
에 플로리다를 인쇄 내가 도대체 뭘 잘못하고있는 겁니까? 나는 단순히 Hashtable에서 특정 String을 검색 할 수 있기를 원한다. 어떤 도움도 언제나처럼 대단히 감사합니다.
편집 : 대문자와 관련된 문제가 있거나 어쩌면 내 xmlMatch가 추가 공백 문자를 전달할 수 있습니까? 예 : "플로리다"
EDIT 2 내 XML을 div 태그는 단순히 솔루션 AROUND
<sliceXML>Florida</sliceXML>
WORK 임은 아니지만 내가 묻는 질문에 대한 문제에 대한 해결책이 여기에이 추가를 읽고 .
Joe K 내 endTag를 확인한 결과, 슬래시를 올바르게 인코딩 할 수 없었습니다. 나는 대답을 주위에 내 작품을 게시했습니다 here
'System.out.println ("Florida".equals (xmlMatch))'가 true를 확인 했습니까? 예를 들어 추가 공간이있을 수 있습니다. – assylias
내용이 div 태그에 있다고 언급하셨습니다. out.println (xmlMatch.length())의 결과를 지적하십시오. 나는 당신이 문자열에 숨어있는 공간이 있을지도 모른다고 생각합니다. 문자열 앞뒤의 공백을 제거하는 xmlMatch.trim()과 일치시켜야합니다. – randominstanceOfLivingThing
@ assylias 방금 확인한 결과 - false를 인쇄합니다. 그러나 out.println (xmlMatch)을 시도해보십시오. 플로리다가 인쇄되어 있습니다. 아래 Joao Silva가 제안한 것처럼 xmlMatch를 자르려고했지만 여전히 화면에 null이 인쇄됩니다. 이것이 문제의 결합일까요? – Deepend