2016-08-17 18 views
0
package com.html; 

import java.io.File; 
import org.apache.commons.io.FileUtils; 

public class Link { 

File htmlTemplateFile = new File("email-template.html"); 
String htmlString = FileUtils.readFileToString(htmlTemplateFile,"UTF-8"); 
String Requestor = "Eva Schaubs"; 
String Transaction_ID = "FD_20160817094502"; 
String TicketNumber1 ="0034317479"; 
String TicketNumber2 ="0034317480"; 
String Description1 ="Request for Desktop"; 
String Description2 ="Request for New Phone"; 
String Asset_Name1 ="Desktop PC"; 
String Asset_Name2 ="Phone"; 
String Classification1 ="PROCUREMENT_NEW"; 
String Classification2 ="NEW/CREATION"; 
String Group1 ="NAFTA_MBUSA_Asset_Mgm"; 
String Group2 ="NAFTA_DC_TELEPHONY"; 
String Status1 ="ACTIVE"; 
String Status2 ="ACTIVE"; 
htmlString = htmlString.replace("$Requestor", Requestor); 
htmlString = htmlString.replace("$Transaction_ID", Transaction_ID); 
htmlString = htmlString.replace("$TicketNumber1", TicketNumber1); 
htmlString = htmlString.replace("$TicketNumber2", TicketNumber2); 
htmlString = htmlString.replace("$Description1", Description1); 
htmlString = htmlString.replace("$Description2", Description2); 
htmlString = htmlString.replace("$Asset_Name1", Asset_Name1); 
htmlString = htmlString.replace("$Asset_Name2", Asset_Name2); 
htmlString = htmlString.replace("$Classification1", Classification1); 
htmlString = htmlString.replace("$Classification2", Classification2); 
htmlString = htmlString.replace("$Group1", Group1); 
htmlString = htmlString.replace("$Group2", Group2); 
htmlString = htmlString.replace("$Status1", Status1); 
htmlString = htmlString.replace("$Status2", Status2); 

File newHtmlFile = new File("path/new.html"); 
FileUtils.writeStringToFile(newHtmlFile, htmlString); 

} 

Dies wirft einen Fehler:"Syntaxfehler auf Token erwartet" in Java

asking for closing of token.. at line "String Status2"

Ich weiß nicht, was dumme Fehler, den ich gemacht.

+1

Sie Referenzierung und die Neuzuweisung. – Mena

+1

Lesen Sie über Namenskonventionen: [Java Namenskonventionen] (http://www.javatpoint.com/java-naming-conventions) – DimaSan

+0

Hinweis: A) lesen Sie diese Compiler-Nachrichten sorgfältig; und schau dir genau die Linien an, die sie rufen. Normalerweise ist das wirklich alles, was du brauchst, um das Rätsel zu lösen. B) wenn du es nicht lösen kannst; dann poste die Fehlermeldung hier; und enthalten Informationen, für die die Fehlermeldung gilt. – GhostCat

Antwort

0

Ihr Problem ist sehr einfach:

Wenn Sie eine Folge von Anweisungen direkt innerhalb einer Klasse haben wollen, müssen Sie einen Block um, dass, wie:

class SomeClass { 
    String someField; 
    { 
    someField = "foo"; 
    someField = "ah, better make me bar"; 
    } 

Aber natürlich: Dies ist wäre eine sehr schlechte Übung. Stattdessen sollten Sie verschiedene Methoden haben, die solche Arbeit leisten; vielleicht eine namens "readHtmlTemplate()"; und ein anderes "replacePatternsInHtml()" und so weiter.

Ihre Art der Codierung ist wie eine riesige „no-go“. eine Variable weder innerhalb einer Methode, Konstruktor oder instance/statischer Block

+0

Wie kann ich den Code ändern? –

+0

Ihre Frage geht über das hinaus, was hier leicht erklärt werden kann. Ich würde vorschlagen: Halten Sie Ausschau nach erfahrenen Programmierern in Ihrer Umgebung und lassen Sie Ihren Code überprüfen. Lesen Sie dann Bücher wie "Clean Code" oder "Agile Prinzipien" von Robert Martin. Du wirst sie beim ersten Mal nicht verstehen. Also lies sie; trainieren; und lies sie noch einmal. Dann: wiederhole es. Lernen hört nie auf. Vorerst: Wie gesagt: Sehen Sie sich Ihren Code an und versuchen Sie, die ** unterschiedlichen Verantwortlichkeiten ** zu identifizieren, die darin enthalten sind (wie: eine Datei lesen, Strings ersetzen usw.). Dies sind gute Kandidaten, um Methoden zu werden. – GhostCat

+0

Danke @GhostCat –

Verwandte Themen