【问题标题】:Dollar Sign Character in JavaJava中的美元符号字符
【发布时间】:2016-02-10 03:16:14
【问题描述】:

我是编程新手,但我正在学习。我正在使用来自 www.compilejava.net 的用 php 编写的在线 IDE。我的问题是这个。我尝试使用这段代码,并直接从 Java 教科书中取出:

class DollarArguement {
    public static void main(String args[]) {
        for(int i=0;i<args.length; i++) {
            if(args[i].startsWith("$")) {
                System.out.print(args[i]);
                break;
            }
        }
    }
}

它适用于我尝试过的每个字符,除了“$”。我想在命令行中放置多个字符串并搜索 $ 值。有谁知道为什么这不起作用?提前致谢。

【问题讨论】:

  • 请花一些时间访问help center,阅读How to Ask 并学习使用 StackOverflow 编辑器中提供的格式化工具。这次我给你修好了。
  • 请提供几个示例命令行和预期的输出。您还没有告诉我们代码的用途。
  • 命令行中使用了以下字符串:abcd 1234 $4.54。输出为空白。我在 startsWith 方法的参数中使用的任何字符都将输出正确的字符串。前任。字符串 abcd xyz 1234 的“a”将输出:abcd。谢谢。
  • 对我来说效果很好(+1 用于发布完整示例)。您确实意识到它只会打印以$ 开头的第一个参数,对吗? break 在第一次匹配后终止循环。
  • 谢谢,吉姆。我正在使用来自 www.compilejava.com 的在线 IDE。我认为它是用 php 编写的,所以也许这解释了我观察到的意外结果。我将使用另一个 IDE,看看我的问题是否得到解决。

标签: java string character


【解决方案1】:

我在 OSX 上测试了您的代码,但没有显示“$”的结果,但如果我将其更改为“.”它打印了第一个结果(因为 break 语句)。

原因是在 OSX(和其他 Unix 系统)上,bash 终端正在寻找以 $ 开头的值,因为这些值表示变量名。

您只需在终端中输入即可进行测试

echo Hi

Hi

echo $Hi

(no result)

我假设带有 $ 前缀的字符串永远不会在晚上进入程序。

您可以使用反斜杠转义 $。尝试在参数中使用这些反斜杠运行程序。

echo \$Hi

$Hi

例如。

java -cp . DollarArguement \$test

$test

【讨论】:

  • 我同意你的观点,我认为“$”字符是受限制的。我相信我遇到的问题是使用来自 www.compilejava.net 的在线 IDE。它是用 PHP 编写的,并且“$”字符受到限制。它是 PHP 保留字符的一部分,在这个特定的应用程序中,它是一个受限制的字符,无法处理和维护在线 IDE 的功能。这是我认为最合理的结论。 Jim 在之前的帖子中提出了一些建议,以供更熟练的 IDE 使用。最好的。
猜你喜欢
  • 2015-08-21
  • 2021-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-26
  • 1970-01-01
  • 2010-10-26
  • 2015-06-19
相关资源
最近更新 更多