小编ins*_*_tk的帖子

java中的Length方法,当在输入字符串上使用时不会产生预期的结果

我的初始代码没有产生所需的结果:

import java.util.Scanner;
class Strings {
    public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
       System.out.println("Enter your word: ");
       String word1 = sc.next();
       System.out.println(word1.length());
       sc.close();
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

 tk@localhost:~$ java Strings
                 Enter your word: 
                 avada kedavra
                 5
Run Code Online (Sandbox Code Playgroud)

这不是我的字符串的长度.但当我尝试这个(没有用户输入):

class Strings {
    public static void main(String[] args) {
        String str = new String("avada kedavra");
        System.out.println(str.length());
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

 tk@localhost:~$ java Strings  
                 13
Run Code Online (Sandbox Code Playgroud)

有用!那么,当我从用户那里获取输入时,为什么它不起作用?我错过了什么?

java string java.util.scanner

0
推荐指数
1
解决办法
133
查看次数

在C和C++中声明用户定义类型的不同方法

这里定义的是ANSI C中的枚举.

enum Security_Levels
{
    black_ops,
    top_secret,
    secret,
    non_secret
};
Run Code Online (Sandbox Code Playgroud)

现在声明类型为Security_Levels的s [4],我在main()代码中写了这个

    Security_Levels s[4];
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

file.c: In function ‘main’:
file.c:13:3: error: unknown type name ‘Security_Levels’
Security_Levels s[4];
Run Code Online (Sandbox Code Playgroud)

但是当我宣布这样的时候

enum Security_Levels s[4];
Run Code Online (Sandbox Code Playgroud)

有效!

Security_Levels s[4];
Run Code Online (Sandbox Code Playgroud)

这个^在C++中工作,但在C中抛出上述错误

在C和C++中使用struct时我也有类似的问题.

struct structure_name variable_name; //this is how it works in C
structure_name variable_name; // in  case of C++
Run Code Online (Sandbox Code Playgroud)

那么,为什么在声明用户定义类型的变量时存在差异呢?

c types

-2
推荐指数
1
解决办法
76
查看次数

标签 统计

c ×1

java ×1

java.util.scanner ×1

string ×1

types ×1