배열을 사용하지 않고 두 개의 사용자 정의 문자열을 비교하여 두 문자열간에 공유되는 문자 수를 출력하고 싶습니다. 그런 다음 각 문자를 출력해야합니다. 나는 스캐너를 사용하여 사용자 입력 부분을 이해하지만 나중에 나는 우둔합니다.두 문자열 사이에 같은 문자 계산 및 출력
예를 들어, 문자열 2가 반환로와 "무슨 일이 있었"문자열 1로 "방해"공유 자 = 5
공유 문자 >> "H", "A", "P의
수 ","p ","e ","e "
내가 지금까지 가지고있는 것입니다. 그것은 각각의 문자를 별도의 줄에 인쇄합니다. 위와 같이 한 줄에 모두 나열 할 수있는 배열이없는 방법이 있습니까? :
public class CountMatches {
public static void main(String[] args)
{
//Declare both Strings.
String word1;
String word2;
int count = 0;
//Call for User Input.
Scanner inputDevice = new Scanner(System.in);
System.out.print("Input String 1 >> ");
word1 = inputDevice.next();
System.out.print("Input String 2 >> ");
word2 = inputDevice.next();
inputDevice.close();
//Determine lengths and set label accordingly.
String BigWord;
String SmallWord;
if (word1.length() > word2.length())
{
BigWord = word1;
SmallWord = word2;
}
else
{
BigWord = word2;
SmallWord = word1;
}
//Count and Display the like characters.
for (int i = 0; i < SmallWord.length(); i++)
{
if (BigWord.contains(String.valueOf(SmallWord.charAt(i))))
{
System.out.println("both words contain the letter " + SmallWord.charAt(i));
count++;
}
}
//Display the count of like characters.
System.out.print("Number of like characters >> " + count);
}
}
작은 길이를 반복 할 때 word2가 contains 절의 짧은 단어라고 가정하기 때문에 이것은 실제로 잘못된 것입니다. word1 = "bbb"및 word2 = "aaab"로 설정하면 일반 문자가 없다고 표시됩니다. – mau
당신은 수정해야하지만 약간 다른 이유로 수정해야합니다. "잘못"이라고하는 것은 (많은 입력에 대해 효과가 있었기 때문에) 부정확하고 약간 거친 하하였습니다. 수정했습니다. 그것을 확인하십시오. 의견을 감사하십시오. 이런 물건으로 나는 멍청한 실수를 범하기 쉽다. – Vidya
그래, 잘못 말하면 좋지 않았다. 작은 논리 오류가 더 좋습니다 :). 이 지금 작동합니다. – mau