Java 如何防止从输入字符串中删除斜杠?

Java 如何防止从输入字符串中删除斜杠?,java,escaping,Java,Escaping,用户输入与文件路径对应的字符串。但是,由于Java自动删除了一个\,所以它们必须放置两个\。我怎样才能让他们只输入C:\path\filename.txt这样的字符串,而不必担心添加撇号或其他斜杠之类的东西 public String getDescriptorPath(){ return this.textField.getText(); } 请允许我澄清:用户在文本字段中键入内容 假设他键入:“C:\Users\daniel.bak\Box Sync\Descriptor Anal

用户输入与文件路径对应的字符串。但是,由于Java自动删除了一个\,所以它们必须放置两个\。我怎样才能让他们只输入C:\path\filename.txt这样的字符串,而不必担心添加撇号或其他斜杠之类的东西

public String getDescriptorPath(){
    return this.textField.getText();
}

请允许我澄清:用户在文本字段中键入内容

假设他键入:“C:\Users\daniel.bak\Box Sync\Descriptor Analyzer\AnalyzeMe.xml”

结果显示为“C:Usersdaniel.bakBox SyncDescriptor AnalyzerAnalyzizeme.xml”


我在这里添加额外的斜杠是因为StackOverflow做了同样的事情。

如果路径是从键盘手动输入的(例如从
scanner.nextLine()
)或从文件读取的,则相应的字符串包含正确的斜杠数

例如,如果在文本文件中有以下字符

C:\path\filename.txt
在java中,当您以字符串形式读取该文件的内容时,该内容相当于以下字符串

"C:\\path\\filename.txt"

我对你们的意思有点困惑,当我取一个JTextField并打印它的内容时,它给我的和我在屏幕上看到的完全一样

JTextField的内容:“C:\path\file.txt”
终端输出:“C:\path\file.txt”


然后,该字符串应该有效,可以从中生成文件,或者以您希望的方式处理它。

java不会删除“\”。如果你想表示这个字符,你只需要添加一个额外的“\”,因为它是一个转义字符。请允许我澄清:用户在文本字段中键入。假设他键入:“C:\Users\daniel.bak\Box Sync\Descriptor Analyzer\AnalyzeMe.xml”,结果显示为“C:Usersdaniel.bakBox SyncDescriptor AnalyzerAnalyzeMe.xml”。我在这里添加额外的斜杠,因为StackOverflow做同样的事情。为了确保数据正确,只需打印字符串。如果您看到两个斜杠,则不正确。如果您看到一个斜杠是正确的。当您从JTextField获取文本时,Java会自动存储带有正确转义“\”的字符串。如果您想确定我不想让字符串转义“\\”,请使用调试器检查字符串的值。用户将只输入一个斜杠,我不希望它转义。如果您从JTextField读取数据,并将数据保存在字符串中,然后打印该字符串,您将看到1个斜杠,所有工作正常。你不需要任何额外的代码。这只是一个测试,向您证明数据是正确的!但是,如果用户在“C:\\path\\file.txt”中键入,JTextField的内容仅为“C:\path\file.txt”,对吗?我不知道试图解释这个问题会如此令人沮丧。事实上不是,我在windows和mac os x中尝试过,它按照我解释的方式工作。是的,我认为整个问题都是基于我犯的一个错误。