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

perlで以下の処理をJavaに置き換えたいのですが、javaがよくわかっていません。

my $moto = "abcdefg";
my $pos = 2;
my $size = 1;
my $rep = "Z";

$ret = substr($moto, $pos, $size, $rep);
# $ret = "c";
# $moto = "abZdefg";

となりますが、javaではどのように書くのでしょうか?

javaにがsubstringはあるみたいですが、substrがないみたいです。
しかも、perlでの第4引数は置換までできます。

A 回答 (2件)

 同じような機能の関数をつくるとすると、以下のようになります。



class substr {

public static String SubStr(String[] source, int start, int size, String replace) {
String Str1 = source[0].substring(start, start + size);
source[0] = new String(source[0].substring(0, start) + replace +
source[0].substring(start + size));
return(new String(Str1));
};

public static void main(String args[]) {

String[] moto = new String[1]; moto[0] = new String("abcdefg");
int pos = 2;
int size = 1;
String rep = new String("Z");

String ret = SubStr(moto, pos, size, rep);

System.out.println("ret=" + ret);
System.out.println("moto=" + moto[0]);

};

}

 javaでは、引数の内容を呼び出された関数の中で変更して返すことはできないので、
第一引数(moto)は配列として定義し、それを渡しています。
    • good
    • 0

StringBuffer#replace とかが近いか?

    • good
    • 0

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