Example 4 In $\triangle A B C$, $A B=37, A C=58$, a circle with center $A$ and radius $A B$ intersects $B C$ at point $D$, and $D$ is between $B$ and $C$. If the lengths of $B D$ and $D C$ are both integers, find the length of $B C$.

In $\triangle A B C$, $A B=37, A C=58$, a circle with center $A$ and radius $A B$ intersects $B C$ at point $D$, and $D$ is between $B$ and $C$. If the lengths of $B D$ and $D C$ are both integers, find the length of $B C$.
Explanation: A triangle with two known sides is indeterminate, but note that the lengths of $B D$ and $D C$ are both integers, so the length of $B C$ is also an integer. Therefore, we can start by determining the range of possible values for $B C$, and then find the value of $B C$ that meets the requirements.

As shown in Figure 2, let the line $A C$ intersect $\odot A$ at points $E$ and $F$. By the secant theorem, we have
$$
\begin{array}{l}
D C \cdot B C=C E \cdot C F \\
=(A C-A E)(A C+A F) \\
=(A C-A B)(A C+A B) \\
=A C^{2}-A B^{2}=58^{2}-37^{2} \\
=21 \times 95=3 \times 5 \times 7 \times 19 .
\end{array}
$$
Figure 2
Since $A C - A B < B C$, point $D$ is not between $B$ and $C$, and should be discarded. Therefore, $B C=57$, at which time $D C=35, B D=22$.

Note: This problem is from "Mathematical Olympiad Problems" in the March 1996 issue of "Intermediate Mathematics". The solution above is more in line with students' thinking patterns.