2015-04-07 34 views
0

如何在不使用内置函数的情况下将字符的位置(包括它们之间的空间位置)打印到字符串中?将字符的位置(包括它们之间的空间位置)打印在一个字符串中

例如: 让字符串输入是 “我爱我印”

炭输入= '我'

输出必须:的 'i' 的位置是:0 10 13

我曾经尝试这样做:

String str="i love my india"; 
    char c='i'; 
    char ch[]=str.toCharArray(); 

    int pos=0; 
    for(int i=0;i<str.length();i++) 
    { 
     if(ch[i]==c) 
     { 
      System.out.print(pos+" "); 
     } 
     pos++; 
    } 

我得到了上面的逻辑输出,但文我尝试使用扫描仪类,输出是错误的:什么是错用下面的代码?

public static void main(String[] args) 
{ 
    Scanner sc1=new Scanner(System.in); 
    System.out.println("enter the string:"); 
    String str=sc1.next(); 
    System.out.println("---------------------------"); 
    Scanner sc2=new Scanner(System.in); 
    System.out.println("enter the character:"); 
    char c=sc2.next().charAt(0); 

    char ch[]=str.toCharArray(); 

    int pos=0; 
    for(int i=0;i<str.length();i++) 
    { 
     if(ch[i]==c) 
     { 
      System.out.print(pos+" "); 
     } 
     pos++; 
    } 
} 
+1

请定义一个'内置函数集函数 –

+0

@TheLostMind是的,删除该c: – Rod

+0

作为两个答案下取代下一个nextline和它的作品 – virusivv

回答

0

使用scanner.nextLine()它读取全线而不是scanner.next()其内容只有第一个字。打印str的值,看看它包含的内容:)

接下来,您只需要1个扫描仪。删除Scanner sc2=new Scanner(System.in);使用sc1代替sc2

0

只替换String str = sc1.next();通过String str = sc1.nextLine();这将工作。 plz试试吧。

相关问题