70 lines
2.5 KiB
HTML
70 lines
2.5 KiB
HTML
<!--
|
|
AUTORE: Manuel Vichi 3^AIN
|
|
Esercizio 2 Stringhe: comparazione di due stringhe
|
|
-->
|
|
<!DOCTYPE html>
|
|
<html lang="it">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Confronto Stringhe</title>
|
|
<style>
|
|
textarea {
|
|
width: 100%;
|
|
height: 100px;
|
|
margin-bottom: 10px;
|
|
}
|
|
button {
|
|
padding: 10px;
|
|
font-size: 16px;
|
|
}
|
|
#result {
|
|
margin-top: 20px;
|
|
font-size: 18px;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<h1>Confronto stringhe</h1>
|
|
<textarea id="text1" placeholder="Inserisci la prima stringa"></textarea><br>
|
|
<textarea id="text2" placeholder="Inserisci la seconda stringa"></textarea><br>
|
|
<button onclick="confrontaStringhe()">Confronta</button>
|
|
<div id="result"></div>
|
|
<script>
|
|
function confrontaStringhe() {
|
|
const text1 = document.getElementById('text1').value;
|
|
const text2 = document.getElementById('text2').value;
|
|
// Conta i vari caratteri
|
|
const count1 = contaCaratteri(text1);
|
|
const count2 = contaCaratteri(text2);
|
|
let risultato = true;
|
|
// Controlla se le due stringhe hanno gli stessi caratteri
|
|
for (let char in count1) {
|
|
if (count1[char] !== count2[char]) {
|
|
risultato = false;
|
|
break;
|
|
}
|
|
}
|
|
// Controlla se ogni carattere che è presente in count2 è anche presente in count1
|
|
for (let char in count2) {
|
|
if (!(char in count1)) {
|
|
risultato = false;
|
|
break;
|
|
}
|
|
}
|
|
document.getElementById('result').innerText = risultato ? 'Le stringhe hanno la stessa distribuzione di caratteri.' : 'Le stringhe non hanno la stessa distribuzione di caratteri.';
|
|
}
|
|
function contaCaratteri(str) {
|
|
// Rimuovi tutto tranne le lettere (case-insensitive)
|
|
const cleanedStr = str.replace(/[^a-zA-Z]/g, '').toLowerCase();
|
|
const count = {};
|
|
// Conta la frequenza dei caratteri
|
|
for (let char of cleanedStr) {
|
|
count[char] = (count[char] || 0) + 1; // Se è la prima volta che il carattere viene incontrato, imposta zero. In tutti i casi infine somma 1 al valore precedentemente trovato.
|
|
}
|
|
return count;
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|