我正在从Java程序执行shell脚本.我使用Runtime类实现了它.以下是我实施的代码
final StringBuilder sb = new StringBuilder("test.sh");
sb.append("/path to/my/text file");
final Process p = Runtime.getRuntime().exec(sb.toString());
Run Code Online (Sandbox Code Playgroud)
这里sb是字符串缓冲区对象,我在其中附加我的参数并在exec方法中使用它.但问题是我传递的参数"/ path to/my/text file"被认为是4个参数
/path
to
/my/text
file
Run Code Online (Sandbox Code Playgroud)
但是如果在shell中运行test.sh"/ path to/my/text file",它被视为单个参数.如何使用Java代码实现相同的功能,我需要将此路径与空格作为单个参数进行考虑.任何请你真的很感激.
我试图替换包含"with"的字符串,下面是我试过的程序
String s="\"/test /string\"";
s = s.replaceAll("\"", "\\\"");
System.out.println(s);
Run Code Online (Sandbox Code Playgroud)
但我得到与字符串"/ test/string"相同的输出.为什么我的替换功能不起作用.如果我做
s = s.replaceAll("\"", "\\\\\"");
Run Code Online (Sandbox Code Playgroud)
然后我得到我想要的输出\"/ test/string \".为什么前一个dint工作,即使在代码中我试图替换"与\"
是否可以找到运行 PostgreSQL 服务器的主机?
我发现当我们将一个对象作为键插入到 Map 中时,它的哈希代码就会生成。但是如果我的键是对象列表,在这种情况下,它是列表中所有对象的哈希码的总和吗?
User user1 = new User(13, "Ron", "ron@gmail.com");
User user2 = new User(15, "Kamden", "kamden@gmail.com");
List<User> userList = new ArrayList<>();
userList.add(user1);
userList.add(user2);
Map<List<User>, User> userMap = new HashMap<>();
userMap.put(userList, user1);
Run Code Online (Sandbox Code Playgroud)
我该如何理解这一点?
我通过将所有空格替换为"_"来转换字符串,如果实际字符串中有"_",我将其转换为"\ _".如果有一个像"this is test _string"这样的字符串结果将是"this_is_test _\_ string",现在我想使用java正则表达式来取回原始字符串"this is test _string".是否可以使用java正则表达式实现?请帮帮我.
java ×4
hashmap ×1
networking ×1
postgresql ×1
regex ×1
replace ×1
runtime.exec ×1
shell ×1
shell-exec ×1
string ×1