如果要拆分的字符串来自文本文件,则 split() 不起作用
split() not working if the string to be splitted is coming from a text file
//我可以按照下面的方式拆分字符串没有问题
var string1 = "abc def ghi";
var res = string1.split(" ");
var split1 = res[1]; // abc
var split2 = res[2]; // def
var split3 = res[3]; // ghi
//但是我必须拆分的字符串来自读取文本文件(文本)
//不幸的是,这不起作用
var fs = require("fs");
fs.readFile("./mytext.txt", function(text){
var textByLine = text.split("\n")
});
var res = text.split(" ");
var split1 = res[1];
var split2 = res[2];
var split3 = res[3];
假设这是 Java 脚本而不是 Java 代码,问题是您正试图在回调函数之外访问 text
变量。来自 readFile
的值将仅在其回调函数内可用。
您应该使用 fs.readFileSync
直接获取值并使用它。有关使用该函数的更多详细信息,请参阅 documentation,但这应该有效:
var fs = require("fs")
var text = fs.readFileSync("./mytext.txt")
var textByLine = text.split("\n")
console.log("first line:",textByLine[0])
//我可以按照下面的方式拆分字符串没有问题
var string1 = "abc def ghi";
var res = string1.split(" ");
var split1 = res[1]; // abc
var split2 = res[2]; // def
var split3 = res[3]; // ghi
//但是我必须拆分的字符串来自读取文本文件(文本) //不幸的是,这不起作用
var fs = require("fs");
fs.readFile("./mytext.txt", function(text){
var textByLine = text.split("\n")
});
var res = text.split(" ");
var split1 = res[1];
var split2 = res[2];
var split3 = res[3];
假设这是 Java 脚本而不是 Java 代码,问题是您正试图在回调函数之外访问 text
变量。来自 readFile
的值将仅在其回调函数内可用。
您应该使用 fs.readFileSync
直接获取值并使用它。有关使用该函数的更多详细信息,请参阅 documentation,但这应该有效:
var fs = require("fs")
var text = fs.readFileSync("./mytext.txt")
var textByLine = text.split("\n")
console.log("first line:",textByLine[0])