当前位置: 首页 > 面试题库 >

如何在不初始化Java中for循环的情况下重用变量?

袁恩
2023-03-14
问题内容

我正在用Java编写一个函数,该函数计算字符串中空格后的字符数。对于某些人来说,这个问题听起来微不足道。

public int countAfterSpaces(final String a){
   int position = 0; // escapes leading whitespaces
   while(position<a.length() && a.charAt(position)==' ') position++;

现在,我想在for循环中重用此变量(位置),而无需在初始化语句中创建新的变量(i)。目前,我正在这样做。

   int count = 0;
   for (int i=position; i<a.length; i++) count++;
   return count;
}

问题答案:

您无需声明新变量:

for (; position<a.length; position++) count++;

您可以将for循环的任何字段保留为空白。

还是更好,为什么不呢?

count = a.length - position;


 类似资料:
  • 我有一个非常基本的函数,它搜索的数组列表,并返回与传递给它的参数匹配的帐户。但是,一旦抛出CustomerAccountNotFoundException,我的for循环就会中断。 我通过在异常后打印的值来测试这一点,该值一直被重置为0。如何在抛出异常后继续循环?我希望每次帐户不匹配时都抛出它,当它匹配时返回帐户。我还尝试过但不起作用。

  • 问题内容: 知道为什么for循环初始化程序中的此struct表达式在编译时会导致语法错误吗?在这种情况下,指向struct的指针工作正常,但是我需要像波纹管这样的局部变量。感谢您的建议! 问题答案: 简化您的代码: 给出编译时错误: 预期的布尔值或范围表达式,找到简单的语句(缺少复合文字周围的括号?)(以及另外1个错误) 该构造难以解析。不管是复合文字的一部分还是语句本身( 块)的开头括号,开头括

  • 我正在编程服务,从数据库中获取数据,并通过REST服务提供这些数据。它使用spring mvc。我的数据库连接配置在属性文件中,在上下文初始化期间,spring将其作为数据源bean从中加载。 现在我的问题是-我想更改属性文件中的配置(例如更改数据库信息),但我无法重新启动应用程序服务器,因此无法加载新配置。 如何重新初始化Spring上下文或一些特定的bean,以便使用新定义的属性?

  • 问题内容: 目前,我正在此站点上抓取图表图表信息。要抓取信息,我需要为有很多镜头的情况做一个for循环。我可以通过单击“ Team Stats”并找到射门次数来找到射门次数。 我想做出适当的选择而不必找出拍摄数量。 我目前正在做什么: 任何帮助将不胜感激。请让我知道是否需要进一步的信息。 问题答案: 我不确定您的变量k是什么意思。 我从所有评论中获得了建议。

  • 问题内容: 有什么方法可以避免在初始化类时调用类,例如从类方法中调用? 我试图在Python中创建一个不区分大小写和标点符号的字符串类,以进行有效的比较,但是在不调用的情况下创建新实例时遇到了麻烦。 我应该替换为什么以用切片初始化新对象? 编辑: 受到以下答案的启发,已对初始化程序进行了编辑,以快速检查是否没有参数。 问题答案: 在此示例中,使用元类提供了一个不错的解决方案。元类的用途有限,但效果

  • 问题内容: 众所周知,根据JLS7 p.4.12.5, 每个实例变量均使用默认值初始化。例如(1): 但是我一直认为,这样的类实现(2): 绝对等于示例(1)。我期望,复杂的Java编译器会看到(2)中的所有这些初始化值都是多余的,并忽略了它们。 但是突然对于这两个类,我们有两个不同的字节码。 例如(1): 例如(2): 问题是: 为什么?但这是显而易见的要优化的事情。什么原因? UPD: 我使用