diferença entre input.next e input.nextLine

gente, estou com o seguinte codigo:

//Corpo do programa
import java.util.Scanner;

public class Principal
{
public static void main(String args[])
{
Exemplo conta = new Exemplo();
Scanner input = new Scanner(System.in);
int one;
int two;
String caracter;

	System.out.print("Entre om os dois numeros: ");
	one = input.nextInt();
	two = input.nextInt();
	System.out.println("Obrigado pelos dados!!!");
	
	caracter = input.nextLine();
	System.out.println(caracter);
	
	conta.soma(one, two);
}

}

Quando rodo me fornece a seguinte saida:

Entre om os dois numeros: 10 10
Obrigado pelos dados!!!

A soma dos numeros é: 20

Mas não esta me permitindo digitar uma frase para ser armazenada na String caracter. O que esta acontecendo?? Meu objetivo era fornecer também uma frase. :?:

De fato, usar Scanner é meio esquisito mesmo.

...
String frase; // ponha um nome mais adequado às suas variáveis...
String lixo;
System.out.print("Entre com os dois numeros: ");
one = input.nextInt(); // lê o primeiro número
two = input.nextInt(); // lê o segundo número
lixo = input.nextLine(); // lê o que sobrou depois do segundo número, até o ENTER, e despreza tudo
System.out.println("Obrigado pelos dados!!!");
System.out.println ("Agora entre com uma frase:");
frase = input.nextLine(); // lê a tal frase

caracter = input.nextLine();
System.out.println(caracter); 

Obrigado pela dica e pela ajuda… deu certinho!!!