我正在做一个Android应用程序,我从图像中读取文本,我得到一个如下所示的输出字符串,
姓名:michael / nPHONE NO:771234521 / n电子邮箱:michael@gmai | ecn / n公司: 谷歌/ N
我想将它们作为字符串单独提取,并分配给变量,如
String Name =“michael”; String Phone =“771234521”;
我怎么能这样实现,这是我的一段代码,
input.setText(recognizedText);
String[] separated = recognizedText.split("/");
for (String s: separated)
{
}
答案 0 :(得分:1)
public static void main(String... args) {
String s = "NAME : michael /nPHONE NO: 771234521/n e-Mail: michael@gmai|.com /nCompany: Google/n";
String[] str = s.split("/n");
for(int i=0;i<str.length;i++)
{
str[i]=str[i].trim();
}
for (int k = 0; k < 4; k++) {
System.out.println(str[k]);
}
}
O / P:
NAME : michael
PHONE NO: 771234521
e-Mail: michael@gmai|.com
Company: Google
答案 1 :(得分:1)
我认为您希望将字段解析为Map,并且它们在换行符(\n
)上分开。也许是这样 -
// Convert the string in to a Map<String, String>.
public static Map<String, String> toMap(String in) {
// the return map.
Map<String, String> map = new HashMap<String, String>();
// a tokenizer on newline
StringTokenizer st = new StringTokenizer(in, "\n");
while (st.hasMoreTokens()) { // while there are lines.
String token = st.nextToken(); // get the line.
String[] kv = token.split(":"); // split on colon.
if (kv.length > 1) { // check that there's a key and a
// value.
map.put(kv[0].trim(), kv[1].trim()); // add it to
// the map.
}
}
return map; // return the map.
}
public static void main(String[] args) {
String str = "NAME : michael \nPHONE NO: 771234521\n"
+ " e-Mail: michael@gmai|.com \nCompany: Google\n";
Map<String, String> map = toMap(str);
System.out.println(map);
}
这在哪里输出 -
{NAME=michael, e-Mail=michael@gmai|.com, Company=Google, PHONE NO=771234521}
答案 2 :(得分:0)
您应该String Tokenizer
使用delimeter
根据您的/
{{1}}
答案 3 :(得分:0)
String src = "NAME : michael /nPHONE NO: 771234521/n e-Mail: michael@gmai|.com /nCompany: Google/n";
String noLineSrc = src.replace("/n", ",");
String[] couples = noLineSrc.split(",");
Map<String, String> result = new HashMap<String, String>();
for(String couple : couples) {
String[] coupleValue = couple.split(":");
result.put(coupleValue[0].trim(), coupleValue[1].trim());
}
答案 4 :(得分:0)
密钥为:"NAME:", "PHONE NO:", "e-Mail:", and "Company:"
。
将字符串与split("/n")
分开后,您可以str[i].contains("Name:")
检查密钥。
该值出现在":"
之后。因此,int pos = str[i].indexof(":") + 1
将成为值的起始位置。
String value = str[i].substring(pos)
为您提供价值。
然后value.trim()
删除空格。