题目是命名一个StringTest程序,定义一个称作StringTest的类,实现用户从键盘输入一句字符串,程序将把第一个出现空格的位置以及将整个字符串中所有的空格计算出来,最后程序将整句字符串逐个从最后一个位置到第一个位置反转显示出来(如abce变为ecba)
反转显示我自己想的是要用getChars()方法,书上有一段getChars()方法例子
char ch[]=new char [7]
String str="java programming"
str.getCharts(2,9,ch,0);
for(int i=0;i<ch.length;i++);
System.out.print(ch[i]+" \t");输出的结果是v a p r o g
下面这是我照着书自己想的模仿的,可以这样写吗?我不明白char ch[]=new char [?]这里面“?”应该填的是什么?还有,ch[i]就是新的数组的意思吗?
char ch[]=new char [2]
String str="abcd"
str.getCharts(3,1,ch,0)
for(int i=3;i<ch.length;i--);
System.out.print(ch[i]);
另外的空格要求就是一点不知道了。。。感觉要用public int length()方法,但是怎么才是只显示空格个数呢?
希望有高手可以赐教指点一下,数组和字符串方法这里我才学,而且感觉上很乱。。。
建议用charAt()方法,这道题简单,我给你分析下,假设String s="abcd";
char ch[]=new char [?]中的问号是字符数组的长度,ch[i]不是表示数组,二是表示数组的第i+1个元素,因为数组下标从零开始
第一个出现空格的位置:
for(int i=0;i<s.length();i++){
if(s.charAt(i)==' ') //第i 个为空格
return i //返回位置
}
统计空格个数:
int sum=0;
for(int i=0;i<s.length();i++){
if(s.charAt(i)==' ')
sum++; //sum就是空格的个数
}
倒置输出:
for(int i=s.length-1;i>=0;i++)
System.out.println(s.charAt[i]);
你数组如果学得好可以用toArray()方法转换为数组操作
这里我没有算 末尾的空格,如果算的话 把减1去掉
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class StringTest {
public static void main(String[] args) {
try {
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
test(in.readLine());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void test(String str)
{
String[] flag=str.split(" ");
System.out.println("一共有空格:"+(flag.length-1));
char[] ch=str.toCharArray();
for(int i=ch.length-1;i>-1;i--)
System.out.print(ch[i]);
}
}
什么意思 还是不清楚 说的仔细点 意思就是说 我输入123 456 ry 那么要显示成yr 654 321??