【问题标题】:End while loop at end of string在字符串末尾结束while循环
【发布时间】:2018-06-25 15:45:00
【问题描述】:

我想结束whileloop,不管长度如何。 对于 python,当索引超过字符串的长度时返回 (-1)。 但是我找不到如何在java中做同样的事情。

 while(true) {
        System.out.println("Letter nur " + (i+1) + " is " + name.charAt(i));
        if(name.charAt(i)==-1){
            break
        }
        i = i + 1;

我可以吗?如果可以,如何?

【问题讨论】:

  • 当迭代一个固定长度的序列时,使用for循环而不是while循环。 Python 和 Java 都是如此。
  • 我不明白如何在 Python 中获得 -1。字符串上没有charAt 方法,索引到末尾会引发异常。
  • @FredLarson 也许 OP 与可以使用 -1 作为索引的切片语法混淆了?
  • @Code-Apprentice:也许吧,但这似乎与这个问题不太相关。

标签: java while-loop


【解决方案1】:

使用for 循环:

for (int i = 0; i < name.length(); i++) {
    System.out.println("Letter nur " + (i+1) + " is " + name.charAt(i));
}

【讨论】:

  • 你能用Java做for (char c : s)吗?太久没有写Java代码了。
  • @Code-Apprentice 你可以做for (char c : s.toCharArray())。但是你不能打印i+1
  • 你也可以把这个if的测试部分放在while中。但我认为 range-for 是最好的主意。
  • 谢谢!我正在做一个练习,我想比较一下 while 和 for 循环的时间。但是,如果我要比较 while(i
  • @parvelmarv 是的。 for 循环更传统。
【解决方案2】:

您可以轻松地为此目的使用 length() 函数。但根据问题,您想在字符串末尾结束 while 循环。这可以按如下方式完成:

    int i=0;
    while(true){
        try{
            System.out.print(""+as.charAt(i));
            i++;
        }
        catch(java.lang.StringIndexOutOfBoundsException e){
            break;
        }
    }

【讨论】:

    猜你喜欢
    • 2017-12-28
    • 2015-08-23
    • 1970-01-01
    • 2017-01-20
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 2014-04-20
    相关资源
    最近更新 更多