アプリ版:「スタンプのみでお礼する」機能のリリースについて

 JAVA初心者です、宜しくお願いします。

 文字列の変更、分割をしたいのですが、色々と参考書を探してみましたが、なかなか理解出来ません。

 例えば、"花子"という文字列から、"子"だけを取り除いて"花"だけをプリントしたいのですが、数字みたいに引き算
では出来ないのでしょうか。

 また、"太郎"という文字列を"太"、"郎"という二つの文字列の変数を作りたいのですが、やはりインスタンス化とかを
してやらないと駄目なのでしょうか。

A 回答 (4件)

No.3さんの補足に対する回答です.



for(String str:strs)はJDK5.0から追加された機能で,拡張for文です.
参考サイト
http://www.javainthebox.net/laboratory/J2SE1.5/L …
http://www.techscore.com/tech/J2SE/JavaLanguage/ …

Javaのバージョンは何ですか.Windowsの環境でしたら,コマンドプロンプトからjava -versionで確認できるかと思います.
参考サイト
http://www.famlog.jp/article.php?id=286

java versionが1.5以下ならば,JDKをアップデートしないとNo.3さんのサンプルコードは実行できません.
それ以外の方法では,拡張for文は糖衣構文ですので,該当箇所を以下の用に変更すると実行できると思います.
for (int i = 0; i < strs.length; i++) {
System.out.println(strs[i]);
}
    • good
    • 1
この回答へのお礼

皆さん色々と親切な回答有り難う御座います。
大変勉強になりました。

お礼日時:2010/01/15 15:07

分割は簡単です。

String.splitを使用すればOK。
引き算はコード書くしかないかな。サンプルコード示しましょう。ご参考にどうぞ。


public class testString {

/**
* @param args
*/
public static void main(String[] args) {

StringmStr="花子and太郎";
String[] strs=stringSprit(mStr);
for(String str:strs){
System.out.println(str);
}

System.out.println("#1#"+stringDec(mStr,"花子"));
System.out.println("#2#"+stringDec(mStr,"子a"));
System.out.println("#3#"+stringDec(mStr,"太郎"));
System.out.println("#4#"+stringDec(mStr,"あいう"));
System.out.println("#5#"+stringDec(mStr,mStr));
}
/**文字列を分割
*
* @param argString
* 分割したい文字列
* @return
* 一文字単位に分割した結果
*/
public staticString[]stringSprit(String argString){
returnargString.split("");
}
/**
* 文字列を引き算
*
* @param argString
* 引き算されるほうの文字列
* @param decString
* 引き算するほうの文字列
* @return
*    引数1から(最初の)引数2を取り除いた文字列
*    ただし、引数1に引数2が含まれなかった場合には、引数1そのまま
*/
public staticStringstringDec(String argString,String decString){
intlenA=argString.length();
intlenD=decString.length();
intsPos=argString.indexOf(decString);
intePos=sPos+lenD;
if(sPos<0){
returnargString;
}

StringBufferbuf=newStringBuffer();
if(sPos>0){
buf.append(argString.substring(0,sPos));
}
if(ePos<lenA){
buf.append(argString.substring(ePos));
}

returnbuf.toString();
}

}

この回答への補足

 osu_neko09さん、回答有り難う御座います。

for(String str:strs){のところでエラーがでるのですが、、、、、
for(String str;strs){でもはしらないし、
for(String str.strs){でもはしらないんですが、
 
宜しくお願いします。

コードの意味は理解出来るのですが。

補足日時:2010/01/11 18:41
    • good
    • 0

引き算は、出来ないと思いますが。


切り取ることは、出来る様な

例えば、以下のように

String namae ="太郎一郎花子";

System.out.println(namae.substring(0, 2));
System.out.println(namae.substring(2, 4));
System.out.println(namae.substring(4, 6));

実行結果

太郎
一郎
花子
    • good
    • 0

int(数値)の場合も、単純な引き算のような式ではインデックスの一部の取得はできません。



たとえば
int i = 10
という数値型変数「i」があるとして、これに「10」という数値が入っているとします。
これを-1したら変数「i」は「9(単純に10-1)」になります。

文字列の一部を取得する際は「substring」してやる必要があります。
始点・終点の指定が必要になりますので、substringのパラメータに文字列検索結果と文字列の長さを渡してやればいいです。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!