【问题标题】:an oops to making space sub string哎呀,使空间子字符串
【发布时间】:2013-10-22 17:39:11
【问题描述】:

我想要一个程序,它接受一个字符串,将其拆分为一个空格,并打印最小子字符串的长度。

我写了这个,但它只是打印第一个字符串的长度。我的问题是什么?

Scanner input = new Scanner(System.in);
        String inp = input.nextLine();
        int counter = 0;
        String[]helper =new String[inp.length()];
        int minlength = Integer.MAX_VALUE;
        for (int i = 0; i < inp.length(); i++) 
        {
            if (inp.charAt(i) != ' ')
            {
                counter++;
                continue;
            }
            minlength = Math.min(counter, minlength);
            counter = 0;
        }
        System.out.println(minlength);

【问题讨论】:

  • 你说的空格分隔是什么意思?
  • partite 表示除以,他想在空白处拆分。
  • 不清楚你在问什么。包括一些输入和预期结果的示例可以帮助我们理解您的意思。
  • 它不是第一个子字符串的长度,而是要打印的倒数第二个子字符串长度。当您遇到空格时,打印循环内的长度并默认最后一个长度。简单的方法是使用字符串拆分功能并打印长度。

标签: java space


【解决方案1】:

使用 .split 方法用空格分割字符串。

String[] stringArray = input.split("\\s+");

通常你可以这样做:

String[] stringArray = input.split(" ");

但是这个来源解释了为什么第一个选项更好:How do I split a string with any whitespace chars as delimiters?

一旦你有了String[] stringArray,你就可以遍历它并找到最小的长度。

int minlength = Integer.MAX_VALUE;
for(int i = 0; i < stringArray.length; i++){
    if(stringArray[i].length() < minlength){
        minlength = stringArray[i].length();
    }
}
System.out.println(minlength);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-19
    • 2013-09-25
    • 2013-02-23
    • 1970-01-01
    • 1970-01-01
    • 2012-08-01
    相关资源
    最近更新 更多