1

私のAndroidアプリでは、「こんにちは#name、ようこそあなたのユーザー名:#ユーザー名とパスワード:#password」というメッセージを送信し、メッセージ内の#name、#username、#passwordは、csvファイルから読み取った値に置き換えられます。例としてメッセージを送信する必要があります。

文字列形式の名前付きプレースホルダー

Map<String, String> values = new HashMap<String, String>();
values.put("value", x);
values.put("column", y);
StrSubstitutor sub = new StrSubstitutor(values, "%(", ")");
String result = sub.replace("There's an incorrect value '%(value)' in column # %(column)");

しかしアンドロイドで

StrSubstitutor クラスはありません。これを実装する方法はあると思います。

ここにcsvから値を読み取り、プレースホルダーを置き換えてメッセージを送信する私のコードがあります

      public void sendingSms(String message, String file_path) {

    File file = new File("", file_path);

    // Read text from file

    try {
        BufferedReader br = new BufferedReader(new FileReader(file));
        String line;
        int iteration = 0;
        while ((line = br.readLine()) != null) {
            if (iteration != 0) {

                StringBuilder text = new StringBuilder();

                text.append(line);
                String[] contact = text.toString().split(",");
                String phoneNumber = contact[4];
                String name = contact[1];
                String username = contact[2];
                String password = contact[3];
      //here i have to replace place holders with name,username,password values
                //message.replace("#name", name);
                //message.replace("#user", username);

                Toast.makeText(Message.this, "" + message,
                        Toast.LENGTH_SHORT).show();

                 SmsManager smsManager = SmsManager.getDefault();
                 smsManager.sendTextMessage(phoneNumber, null, message, null,
                 null);

            }
            iteration++;
        }

    } catch (IOException e) {
        e.printStackTrace();
    }
}
4

2 に答える 2

1

Android が文字列リソースを介して提供する組み込みの文字列フォーマットを実際に使用する必要があります: http://developer.android.com/guide/topics/resources/string-resource.html#FormattingAndStyling

于 2013-10-14T12:56:33.033 に答える
0

独自の StrSubstitutor クラスを設計する場合、必要な機能は String クラス自体に組み込まれています。基本的に、マッピングされた値を関数に使用して foreach を構築/設計します。

String result = inputString.replace(valueString, replacedValueString);

しかし、あなたが組み込みを要求している機能については知りません。Alex Fu も、文字列の交換を処理できる代​​替手段を提供しています。

于 2013-10-14T12:58:11.543 に答える