このディレクトリの索引
#  出典 :: ★★ Java の宿題ここで答えます Part 67 ★★ #675 
# 【 課題 】二つの文字列str1 とstr2 を入力して、str1 とstr2 から交互に一文字ずつ順番にとりだして、交  
# 互にならべた文字列をつくれ。長い方の文字列の後の部分はそのままくっついた形になる。
# String,StringBuffer クラスのメソッドを使え。 
# 

'二つの文字列str1 とstr2 を入力して、str1 とstr2 から交互に一文字ずつ順番にとりだして、交互にならべた文字列をつくれ。長い方の文字列の後の部分はそのままくっついた形になる。'(Str1,Str2,_文字列) :-
'str1 とstr2 から交互に一文字ずつ順番にとりだして交互にならべた文字列をつくる。長い方の文字列の後の部分はそのままくっついた形になる。'(Str1,Str2,_文字列).

'str1 とstr2 から交互に一文字ずつ順番にとりだして交互にならべた文字列をつくる。長い方の文字列の後の部分はそのままくっついた形になる。'(Str1,Str2,_文字列) :-
'二つの文字列のどちらかが空文字になったら停止する。長い方の文字列の後の部分はそのままくっついた形になる。'(Str1,Str2,_文字列),!.
'str1 とstr2 から交互に一文字ずつ順番にとりだして交互にならべた文字列をつくる。長い方の文字列の後の部分はそのままくっついた形になる。'(Str1,Str2,_文字列) :-
'str1 とstr2 から交互に一文字ずつ順番にとりだして行く'(Str1,Str2,_文字列).

'二つの文字列のどちらかが空文字になったら停止する。長い方の文字列の後の部分はそのままくっついた形になる。'('',Str2,Str2) :- !.
'二つの文字列のどちらかが空文字になったら停止する。長い方の文字列の後の部分はそのままくっついた形になる。'(Str1,'',Str1) :- !.


'str1 とstr2 から交互に一文字ずつ順番にとりだして行く'(Str1,Str2,_文字列) :-
先頭から一文字ずつ切り取り残り文字列を得る(Str1,Str2,C1,C2,Str1_2,Str2_2),
freeze(_文字列_2,atomic_list_concat([C1,C2,_文字列_2],_文字列)),
'str1 とstr2 から交互に一文字ずつ順番にとりだして交互にならべた文字列をつくる。長い方の文字列の後の部分はそのままくっついた形になる。'(Str1_2,Str2_2,_文字列_2).

先頭から一文字ずつ切り取り残り文字列を得る(Str1,Str2,C1,C2,Str1_2,Str2_2) :-
sub_atom(Str1,0,1,R1,C1),
sub_atom(Str2,0,1,R2,C2),
sub_atom(Str1,1,R1,0,Str1_2),
sub_atom(Str2,1,R2,0,Str2_2).