代入式の評価について教えてください。

「解きながら学ぶJava入門編」の3章の錬成問題で
 int a=1,b=3,c=5;
 System.out.println("a=b=c:"+(a=b=c));
 System.out.println("c=b=a:"+(c=b=a));
の実行結果がそれぞれ「5」となるとありました。
参考:
 ttp://www.bohyoh.com/Books/TokinagaraJavaA/TKMJA03.pdf

実際に以下のように書いて実行すると、出力はどちらも「5」に
なりました。代入演算子=は右結合となるので、1つ目は「5」ですが
2つ目は「1」になりそうですが、実際は結果が違いました。
なぜこのような結果になるのか教えて頂けないでしょうか。
よろしくお願いします。

public class Test {

public static void main(String[] args) {
int a=1,b=3,c=5;
System.out.println("a=b=c:"+(a=b=c));
System.out.println("c=b=a:"+(c=b=a));
}
}