首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何克服ArrayList字符串分隔“”和“”?

如何克服ArrayList字符串分隔“”和“”?
EN

Stack Overflow用户
提问于 2014-12-15 17:50:44
回答 4查看 249关注 0票数 0

我有一个数组列表,定义为

代码语言:javascript
复制
List<String> cmd = new ArrayList<String>();

我将以这种方式将其他字符串添加到此列表中

代码语言:javascript
复制
  cmd.add("/c");
  cmd.add(command);

但是,如果命令包含“”或“”,并且它们之间有空格,则引号将被截断。如何解决此问题?

例如,如果命令是

grep "Hello world" /sratch/temp

cmd包含这些字符串/c grep Hello World /scratch/temp

但是,如果命令为grep "Hello\ world" /sratch/temp

cmd中的字符串为

/c grep " Hello World " /scratch/temp

我如何对它进行编程,使“”不被截断?

EN

回答 4

Stack Overflow用户

发布于 2014-12-15 17:53:36

所以您希望您的String对象包含引号?尝试用反斜杠对它们进行转义:

cmd.add("some string with \"quotes\"");

票数 1
EN

Stack Overflow用户

发布于 2014-12-15 17:57:30

这个问题与ArrayList无关,当您将单引号和双引号赋值给String对象或从用户输入中检索它们时,您只需对它们进行转义。有关Java中转义序列的更多信息,例如,可以在Oracle站点上查看this tutorial

票数 1
EN

Stack Overflow用户

发布于 2014-12-15 17:53:23

你可以转义引号,只需写下:

代码语言:javascript
复制
"grep \"Hello world\" /sratch/temp"

您可以查看this,了解更多信息

如果您正在解析用户输入,将自动转义这些特殊字符。例如,使用以下代码:

代码语言:javascript
复制
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s = in.nextLine();
        System.out.println("Input:"+s);
    }
}

输入:Testing "Quotes"

您将获得以下字符串:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27481282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档