2016-10-17 45 views
-3

我希望能帮助我解决我的问题。我有这样的代码:java字符在一个字符串中的位置

public static void main(String[] args) { 
    Scanner scanner=new Scanner(System.in); 

    System.out.print("Enter a string:\t"); 
    String word = scanner.nextLine(); 

    System.out.print("Enter a character:\t"); 
    String character = scanner.nextLine(); 

    char charVar = 0; 
    if (character.length() > 1) { 
     System.err.println("Please input only one character."); 
    } else { 
     charVar = character.charAt(0); 
    } 

    int count = 0; 
    for (char x : word.toCharArray()) { 
     if (x == charVar) { 
      count++; 
     } 
    } 

    System.out.println("Character " + charVar + " appears " + count + 
         (count == 1 ? " time" : " times")); 
} 

所以这段代码要求用户输入一个字符串,然后它要求用户输入一个字符,然后程序会告诉用户看来,特定的字符多少倍。我的问题是,我需要转换此代码,所以它仍然会问用户的字符串,但不会要求一个字符。它会要求用户输入一个数字。程序将显示字符串中该位置的字符。例如:假设他们输入“字符串”,然后输入2,程序将显示字符“r”。所以我的问题基本上是否可以给我一个如何实现这一点的想法。任何帮助都会很棒。

+0

嗯,你可以通过不忽略[文件]启动(http://docs.oracle.com/javase/8/docs/api/java/lang/String.html)了 – Tom

+1

张贴当[代码](http://stackoverflow.com/a/39863009/1248974)从其他问题,请参考你从哪里得到的代码,或更好的,只包括*你的*代码。 – davedwards

+0

使用scanner.nextInt()获取整数,然后使用String.charAt(int)从指定的字符串获取该索引处的字符。 – Brunaldo

回答

0
public static void main(String[] args) { 
     Scanner scanner=new Scanner(System.in); 

     System.out.print("Enter a string:\t"); 
     String word = scanner.nextLine(); 

     System.out.print("Enter an integer:\t"); 
     int index = scanner.nextInt(); 

     System.out.println("Character at position " + index + ": " + word.charAt(index)); 
    } 
+0

谢谢你的回答。完全不相关的问题,如果您从未在程序中关闭扫描仪,问题有多大? –

+0

在一个简短的例子中,像这里只读取用户输入的简单例子,这不是一个问题,除非我们要读取更多的输入。如果我们打开并阅读文件或其他资源,当然,这可能会成为一个问题(破坏文件等)。但是,使用后无需关闭它,Java环境会在程序终止时自动关闭它。 – davedwards

相关问题