- ベストアンサー
文字列についてのプログラム実行例
- 文字列についてのプログラム実行例です。
- 文字列と整数を入力し、指定された位置で文字列を分割して反転させるプログラムです。
- 入力された文字列を指定した位置で分割し、分割後の後半部分の文字列を反転させ、結合して出力します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> 文字列のnum番目からnum個の文字だけ逆順になるように文字列を並び替えた文字列 「文字列のnum番目から逆順」になっています。 「文字列のnum番目からnum個の文字だけ逆順」になってません。 既に使ってるものを少し変えるだけです。 それくらいは考えられるでしょう
その他の回答 (3)
- gookinger
- ベストアンサー率23% (33/140)
aw345さん、こんばんは。 すでに、回答がでていますね。 そこで、プログラミングの勉強のコツですが、 自分で、紙と鉛筆を使って、トレースをすると、 理解することができますよ。 トレースの経験を積んでいけば、大丈夫です。 プログラミング学習に、あせりは禁物です。 ひとつひとつ、知識を積み重ね、コツコツじっくり取り組んでくださいね!!
- いけだ ひろし(@ike-2000)
- ベストアンサー率53% (69/129)
String str3 = str1.substring(0,num); /*0文字目からnum-1文字目までを取り出す*/ String str4 = str1.substring(num); /*これはnum文字目から最後まで取り出す*/ よって String str4 = str1.substring(num,num+num); /*num文字目からnum+num-1文字目を取り出す*/ とすれば問題の通りです。(検証して無いので言い切れませんが論理的には正しいはず。) ここで問題は、str4に取り出した文字列のさらに右にも文字が残ることです。 これを処理してあげましょう。 String str6 = str1.substring(num+num); /*num+num文字目から再度まで取り出す。*/ System.out.println(str3+str5+str6); で完成です。 本来であれば最初の文字列の長さを求めて処理してやるべきです。 例えば文字列"ABCDEFGH"の8文字に対して10といった数字を入力された場合どうするかなどの考慮が必要です。 このあたりはプログラム仕様書(課題ですね)で記述されるべきものです。完成したからOKだけではなくて他人(自分もですが)が使ったときに問題ないか気を回してやってください。 プログラムは作った人以上のことは出来ません。作る人が十分に考えてやってください。
- いけだ ひろし(@ike-2000)
- ベストアンサー率53% (69/129)
ここのところが文字列の最後まで切り出していますね。 String str4 = str1.substring(num); substring(int beginIndex,int endIndex)の形式で部分的にしてあげてください。 また、このように部分的に切り出すと、その右に文字列が残ってしまうのでそれも忘れず処理してやってください。
補足
この質問はもうちょっと、わかりやすく説明してほしかったな・・・・・
補足
まだ、プログラミングの構造の考え方を勉強していないし、まだ未経験なもんですまんのーーー!!!。