import java.util.StringTokenizer;
import java.util.HashMap;
import java.util.Map;
public class CodeFragmentAnalyzer {
public static void main(String[] args) {
String text = "System.out.println(\"Hello\");int num = 10;---print(\"World\");x = 20;---cout << \"Hi\";int a = 5;";
StringTokenizer outerTokenizer = new StringTokenizer(text, "---");
Map<String, Integer> languageCountMap = new HashMap<>();
languageCountMap.put("Java", 0);
languageCountMap.put("Python", 0);
languageCountMap.put("C++", 0);
while (outerTokenizer.hasMoreTokens()) {
String codeFragment = outerTokenizer.nextToken();
StringTokenizer innerTokenizer = new StringTokenizer(codeFragment, ";");
String language = identifyLanguage(codeFragment);
if (language != null) {
languageCountMap.put(language, languageCountMap.get(language) + 1);
}
System.out.println("Code Fragment: " + codeFragment);
while (innerTokenizer.hasMoreTokens()) {
System.out.println("Statement: " + innerTokenizer.nextToken());
}
}
for (Map.Entry<String, Integer> entry : languageCountMap.entrySet()) {
System.out.println(entry.getKey() + " code fragments count: " + entry.getValue());
}
}
private static String identifyLanguage(String codeFragment) {
if (codeFragment.contains("System")) {
return "Java";
} else if (codeFragment.contains("print")) {
return "Python";
} else if (codeFragment.contains("cout")) {
return "C++";
}
return null;
}
}