2013-04-27 5 views
9

Wie kann ich das Hash-Zeichen (#) in Java-Eigenschaftendateien entkommen.Java-Eigenschaften: wie zu entkommen # (Hash)

Wir haben ein Internationalisierungs-Framework, das Java-Eigenschaftendateien verwendet.

Es gibt eine Spalte namens Nummer und wir wollen, dass die Kopfzeile # ist. Dieser ...

number=# 

... funktioniert nicht.

+0

Da es Java ist, müssen Sie Hash ('#') durch '\\ #' in Ihrem Code ersetzen. Beachten Sie die doppelten Schrägstriche. Alternativ können Sie '#' durch '\\ u0023' ersetzen. – Sabin

Antwort

-1

Als das Standard-Escape-Zeichen in Java ist die '\' versuchen, den Hash damit zu entkommen.

+9

Die Verwendung von * try * in einer Antwort ist eine ** schlechte Übung **. Entweder Sie * wissen * und antworten mit Zuversicht, * oder * schreiben es als Kommentar oder unterlassen es, überhaupt zu antworten. – skuntsel

+0

Nun, es ist eigentlich schlechte Formulierung. das tut mir leid. – DmiN

6

Dieses ohne Escape-Zeichen funktionieren sollte:

number=# 

nur einen kleinen Test-Code ....

mit gemacht
prop.load(new FileInputStream ("./res/app.properties")); 
System.out.println("Property: " +prop.getProperty("Number")); 

... und Immobiliendatei (beachten Sie Groß-/Kleinschreibung):

Number=# 
Text=test 

Ergebnis:

Property: # 

Also überprüfen Sie lieber Ihre Rechtschreibung, Klein-/Großschreibung oder weitere Verarbeitung.

Weitere Informationen finden Sie unter this oder that one (Verknüpfung von Java-Dokumentation).

p.s.: obwohl es nicht erforderlich sein sollte, können Sie auch die Unicode-Sequenz versuchen: \u0023.

Prost!

0

fand ich diese Frage bei der Suche, wie man richtig im folgenden Fall zu entkommen (nicht funktioniert):

zendesk.ticket.subject.prefix=#{{ticket.id}}

In diesem Fall muss es zu entkommen, sonst wird die folgende Ausnahme auftritt:

0123: Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'createTicketService' defined in file [/Users/***]: Unsatisfied dependency expressed through constructor parameter 6; nested exception is org.springframework.beans.factory.BeanExpressionException: Expression parsing failed; nested exception is org.springframework.expression.spel.SpelEvaluationException: EL1008E: Property or field 'ticket' cannot be found on object of type 'org.springframework.beans.factory.config.BeanExpressionContext' - maybe not public? at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:189) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1193) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1095) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:835) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:741) ... 64 common frames omitted Caused by: org.springframework.beans.factory.BeanExpressionException: Expression parsing failed; nested exception is org.springframework.expression.spel.SpelEvaluationException: EL1008E: Property or field 'ticket' cannot be found on object of type 'org.springframework.beans.factory.config.BeanExpressionContext' - maybe not public? at org.springframework.context.expression.StandardBeanExpressionResolver.evaluate(StandardBeanExpressionResolver.java:164) at org.springframework.beans.factory.support.AbstractBeanFactory.evaluateBeanDefinitionString(AbstractBeanFactory.java:1448) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1088) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:835) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:741) ... 78 common frames omitted Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1008E: Property or field 'ticket' cannot be found on object of type 'org.springframework.beans.factory.config.BeanExpressionContext' - maybe not public? at org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:226) at org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:94) at org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:81) at org.springframework.expression.spel.ast.CompoundExpression.getValueRef(CompoundExpression.java:51) at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:87) at org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:120) at org.springframework.expression.spel.ast.InlineList.getValueInternal(InlineList.java:95) at org.springframework.expression.spel.ast.SpelNodeImpl.getTypedValue(SpelNodeImpl.java:131) at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:297) at org.springframework.expression.common.CompositeStringExpression.getValue(CompositeStringExpression.java:105) at org.springframework.expression.common.CompositeStringExpression.getValue(CompositeStringExpression.java:42) at org.springframework.context.expression.StandardBeanExpressionResolver.evaluate(StandardBeanExpressionResolver.java:161) ... 83 common frames omitted

The/Lösung würde #{'#'} das Endergebnis ist (Werke) zu benutzen,

zendesk.ticket.subject.prefix=#{'#'}{{ticket.id}}