在我的Android应用程序中 在消息中,如果我给出消息“hi#name,欢迎您的用户名:#username和密码:#password”并在消息#name,#username,#password将被替换为从csv文件读取的值 它应该发送消息为例:“嗨praveen,欢迎您的用户名:neevarp和密码:12345” 这些值来自csv。搜索时我得到了一些链接
Named placeholders in string formatting
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)");
但在android
中StrSubstitutor class不存在我认为有没有办法实现这个
这是我从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();
}
}
答案 0 :(得分:1)
您应该使用Android提供的内置字符串格式来提供字符串资源:http://developer.android.com/guide/topics/resources/string-resource.html#FormattingAndStyling
答案 1 :(得分:0)
如果要设计自己的StrSubstitutor类,则需要将所需的功能内置到String类本身中。基本上使用Mapped值构建/设计foreach到函数中。
String result = inputString.replace(valueString, replacedValueString);
但我不知道您要求内置的功能。 Alex Fu还提供了替代方法,您可以通过它来处理字符串替换。