Java 为什么`\n`不';不行?
在我的Android应用程序中,我有Java 为什么`\n`不';不行?,java,android,string,Java,Android,String,在我的Android应用程序中,我有 <string name="key1">Hello \n world </string> 我使用XML解析器并将其放在HashMap上以获取它 private boolean parseData(String response){ HashMap<String,HashMap<String,String>> mainHashMap = new HashMap<String, HashMa
<string name="key1">Hello \n world </string>
我使用XML解析器并将其放在HashMap上以获取它
private boolean parseData(String response){
HashMap<String,HashMap<String,String>> mainHashMap = new HashMap<String, HashMap<String, String>>();
XmlMGParser config = new XmlMGParser(response);
for(XmlMGParser element:config.children("string")){
String name = element.string("name");
String lang = element.string("lang_iso");
if (!mainHashMap.containsKey(lang)){
mainHashMap.put(lang,new HashMap<String, String>());
}
HashMap<String,String> hashMap = mainHashMap.get(lang);
hashMap.put(name, element.content());
}
return true;
}
private boolean parseData(字符串响应){
HashMap mainHashMap=新HashMap();
XmlMGParser config=新的XmlMGParser(响应);
for(XmlMGParser元素:config.children(“字符串”)){
字符串名称=element.String(“名称”);
String lang=element.String(“lang_iso”);
如果(!mainHashMap.containsKey(lang)){
put(lang,newhashmap());
}
HashMap HashMap=mainHashMap.get(lang);
put(name,element.content());
}
返回true;
}
它会有什么问题?还是因为XMLMGParser
XMLMGParser.java
public class XmlMGParser {
private String name;
private String content;
private Map<String,String> nameAttributes = new HashMap<String,String>();
private Map<String,ArrayList<XmlMGParser>> nameChildren = new HashMap<String,ArrayList<XmlMGParser>>();
public XmlMGParser(InputStream inputStream, String rootName) {
this(rootElement(inputStream,rootName));
}
public XmlMGParser(String filename, String rootName) {
this(fileInputStream(filename),rootName);
}
public XmlMGParser(String xml) {
this(rootElement(xml));
}
private XmlMGParser(Element element) {
this.name = element.getNodeName();
this.content = element.getTextContent();
NamedNodeMap namedNodeMap = element.getAttributes();
int n = namedNodeMap.getLength();
for(int i=0;i<n;i++) {
Node node = namedNodeMap.item(i);
String name = node.getNodeName();
addAttribute(name,node.getNodeValue());
}
NodeList nodes = element.getChildNodes();
n = nodes.getLength();
for(int i=0;i<n;i++) {
Node node = nodes.item(i);
int type = node.getNodeType();
if(type==Node.ELEMENT_NODE) {
XmlMGParser child = new XmlMGParser((Element)node);
addChild(node.getNodeName(),child);
}
}
}
public void addAttribute(String name, String value) {
nameAttributes.put(name,value);
}
private void addChild(String name, XmlMGParser child) {
ArrayList<XmlMGParser> children = nameChildren.get(name);
if(children==null) {
children = new ArrayList<XmlMGParser>();
nameChildren.put(name,children);
}
children.add(child);
}
public String name() {
return name;
}
public void setContent(String content) {
this.content = content;
}
public String content() {
return content;
}
public void addChild(XmlMGParser xml) {
addChild(xml.name(),xml);
}
public void addChildren(XmlMGParser... xmls) {
for(XmlMGParser xml:xmls) addChild(xml.name(),xml);
}
public XmlMGParser child(String name) {
XmlMGParser child = optChild(name);
if(child==null) throw new RuntimeException("Could not find child node: "+name);
return child;
}
public XmlMGParser optChild(String name) {
ArrayList<XmlMGParser> children = children(name);
int n = children.size();
if(n>1) throw new RuntimeException("Could not find individual child node: "+name);
return n==0 ? null : children.get(0);
}
public boolean option(String name) {
return optChild(name)!=null;
}
public ArrayList<XmlMGParser> children(String name) {
ArrayList<XmlMGParser> children = nameChildren.get(name);
return children==null ? new ArrayList<XmlMGParser>() : children;
}
public String string(String name) {
String value = optString(name);
if(value==null) {
throw new RuntimeException(
"Could not find attribute: "+name+", in node: "+this.name);
}
return value;
}
public String optString(String name) {
return nameAttributes.get(name);
}
public int integer(String name) {
return Integer.parseInt(string(name));
}
public Integer optInteger(String name) {
String string = optString(name);
return string==null ? null : integer(name);
}
public double doubleValue(String name) {
return Double.parseDouble(optString(name));
}
public Double optDouble(String name) {
String string = optString(name);
return string==null ? null : doubleValue(name);
}
private static Element rootElement(InputStream inputStream, String rootName) {
try {
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = builderFactory.newDocumentBuilder();
Document document = builder.parse(inputStream);
Element rootElement = document.getDocumentElement();
if(!rootElement.getNodeName().equals(rootName))
throw new RuntimeException("Could not find root node: "+rootName);
return rootElement;
}
catch(IOException exception) {
throw new RuntimeException(exception);
}
catch(ParserConfigurationException exception) {
throw new RuntimeException(exception);
}
catch(SAXException exception) {
throw new RuntimeException(exception);
}
finally {
if(inputStream!=null) {
try {
inputStream.close();
}
catch(Exception exception) {
throw new RuntimeException(exception);
}
}
}
}
private static Element rootElement(String xml){
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
Document dom=null;
try {
DocumentBuilder builder = factory.newDocumentBuilder();
StringReader reader = new StringReader(xml);
InputSource source = new InputSource(reader);
dom = builder.parse(source);
} catch (ParserConfigurationException e) {
} catch (SAXException e) {
} catch (IOException e) {
}
Element root = dom.getDocumentElement();
return root;
}
private static FileInputStream fileInputStream(String filename) {
try {
return new FileInputStream(filename);
}
catch(IOException exception) {
throw new RuntimeException(exception);
}
}
}
公共类XmlMGParser{
私有字符串名称;
私有字符串内容;
私有映射nameAttributes=newhashmap();
私有映射名children=newhashmap();
公共XmlMGParser(InputStream InputStream,字符串根名称){
这个(rootElement(inputStream,rootName));
}
公共XmlMGParser(字符串文件名、字符串根名称){
这(fileInputStream(filename),rootName);
}
公共XmlMGParser(字符串xml){
这个(rootElement(xml));
}
私有XmlMGParser(元素){
this.name=element.getNodeName();
this.content=element.getTextContent();
NamedNodeMap NamedNodeMap=element.getAttributes();
int n=namedNodeMap.getLength();
对于(int i=0;i字符串使用HTML格式,因此您应该使用
,而不是/n
<string name="key1">Hello <BR> world </string>
你好
世界
字符串使用HTML格式,因此您应该使用
而不是/n
<string name="key1">Hello <BR> world </string>
你好
世界
字符串使用HTML格式,因此您应该使用
而不是/n
<string name="key1">Hello <BR> world </string>
你好
世界
字符串使用HTML格式,因此您应该使用
而不是/n
<string name="key1">Hello <BR> world </string>
你好
世界
此外,如果将字符串用作HTML,则可以使用
换行符
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="title">Hello<br />world!</string>
你好/世界!
此外,如果将字符串用作HTML,则可以使用
换行符
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="title">Hello<br />world!</string>
你好/世界!
此外,如果将字符串用作HTML,则可以使用
换行符
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="title">Hello<br />world!</string>
你好/世界!
此外,如果将字符串用作HTML,则可以使用
换行符
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="title">Hello<br />world!</string>
你好/世界!
试试:
“你好\n世界”
您需要在字符串周围放置“”以应用\n。请尝试:
“你好\n世界”
您需要在字符串周围放置“”以应用\n。请尝试:
“你好\n世界”
您需要在字符串周围放置“”以应用\n。请尝试:
“你好\n世界”
您需要在字符串周围放置“”,以应用\n.它没有响应。我的意思是什么都没有发生我还使用了setText(Html.fromHtml(…))啊…然后您只需要在该方法的参数中硬编码它。否则它不起作用:(它没有响应。我的意思是什么都没有发生我也使用setText(Html.fromHtml(…))啊…然后你只需要在该方法的参数中硬编码。否则它不工作:(它不响应。我的意思是什么都没有发生我还使用了setText(Html.fromHtml(…))啊…然后你只需要在该方法的参数中硬编码它。否则它不工作:(它不响应。我的意思是什么都没有发生我也使用了setText)(Html.fromHtml(…))啊……那么您只需要在该方法的参数中硬编码它。否则它将无法工作:(