重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
import java.util.Scanner;
在淮安区等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站建设、成都网站建设 网站设计制作定制网站制作,公司网站建设,企业网站建设,成都品牌网站建设,全网营销推广,外贸网站制作,淮安区网站建设费用合理。
public class test{
public static void main(String[] args) {
int upperCase=0,lowerCase=0,mark=0,space=0;
String str = "";
System.out.println("请输入句子:");
str = new Scanner(System.in).nextLine();
for (int i = 0; i str.length(); i++) {
//大写字母的ASCII码在65到90之间
if ((int)str.substring(i,i+1).charAt(0)=65 (int)str.substring(i,i+1).charAt(0) =90) {
upperCase++;
//小写字母的ASCII码在97到122之间
}else if ((int)str.substring(i,i+1).charAt(0)=97 (int)str.substring(i,i+1).charAt(0) =122) {
lowerCase++;
//空格是ASCII码是32
}else if ((int)str.substring(i,i+1).charAt(0) == 32) {
space++;
//.的ASCII码是46,!的ASCII码是33,?的ASCII码是63
}else if ((int)str.substring(i,i+1).charAt(0)== 33 || (int)str.substring(i,i+1).charAt(0)== 46
||(int)str.substring(i,i+1).charAt(0) == 63) {
mark++;
}
}
/**字符应该不算空格,所以句子的字符数是大写字母的数量加上小写字母的数量加上符号数,单词数等于空格数加1,句子的数量就等于符号的数量*/
System.out.println("这一句话有字符"+(upperCase+lowerCase+mark)+"个,单词有"+(space+1)+"个,句子有"+mark+"个。");
System.out.println("这一句话大写字母有"+upperCase+"个,小写字母有"+lowerCase+"个。");
}
}
你这个只用数组的话这个问题是解决不了的,你可以用集合:
package ad;
import java.util.Arrays;
import java.util.Scanner;
import java.util.LinkedList;
public class Lll {
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
LinkedListCharacter list = new LinkedList(); //Character就是char,只不过是它的包装类,一般当char看待即可
//依次添加字符
list.add('a');
list.add('c');
list.add('u');
list.add('b');
list.add('e');
list.add('p');
list.add('f');
list.add('z');
{
//转化成数组进行排序
Character[] arr = new Character[list.size()];
Character[] array = (Character[])list.toArray(arr);
list.clear();
Arrays.sort(array);
System.out.print("排序后数组:");
for (int i = 0; i array.length; i++) {
System.out.print(array[i] + " ");
list.add(array[i]);
}
System.out.println();
}
//让用户输入字符并添加进集合
System.out.print("请输入一个字符:");
String string = sc.next();
char c = string.charAt(0);
list.add(c);
{
//转化成数组进行排序
Character[] arr = new Character[list.size()];
Character[] array = (Character[])list.toArray(arr);
list.clear();
Arrays.sort(array);
System.out.print("插入字符并排序后的数组:");
for (int i = 0; i array.length; i++) {
System.out.print(array[i] + " ");
list.add(array[i]);
}
System.out.println();
}
}
}
import java.util.Scanner;
public class EnglishWord {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String input;
StringBuilder str=new StringBuilder();
int count=0;
System.out.println("输入单词,输入end结束");
do{
input=sc.next();
if(input.startsWith("a")){
count++;
str.append(input);
}
}while(!input.equals("end"));//输入“end”结束
System.out.println("开头为a的单词有"+count+"个!");
System.out.println(str.toString());
}
}
编码思路
首先考虑到,英文字母的ASCII码是按字母顺序连续的整数,所以可以采用起始字母A递增的方式进行打印
英文字母有大小写之分,大小写字母的ASCII码是不连续的,所以需要分别打印
示例代码
public static void main(String[] args) {
char uc = 'A';
char lc = 'a';
//保存全部大写字母
StringBuilder upperCaseLetters = new StringBuilder("UpperCaseLetters:");
//保存全部小写字母
StringBuilder lowerCaseLetters = new StringBuilder("LowerCaseLetters:");
for (int i = 0; i 26; i++) {
upperCaseLetters.append((char) (uc + i));
lowerCaseLetters.append((char) (lc + i));
}
System.out.println(upperCaseLetters);
System.out.println(lowerCaseLetters);
}
注意事项
不建议将上述变量uc硬编码赋值为65。反之,则可以提高程序的可读性,省去了不必要的注释,也体现出了可移植性的思想。
public static String translate(String value) {
StringBuffer result = new StringBuffer();
char[] valueChars = value.toCharArray();
String temp = null;
for (char c : valueChars) {
if (c = 'a' c = 'z') {
temp = c - 'a' + 1 + "";
if (temp.length() == 1) {
result.append("0");// 补零,不然还原不回来
}
} else if (c = 'A' c = 'Z') {
temp = c - 'A' + 27 + "";//应该是27刚刚26错了
} else if (c == ' ') {
temp = "*";
} else {
temp = c + "";
}
result.append(temp);
}
return result.append(".").toString();
}
首先要使用到从控制台输入
scanner
sc
=
new
scanner(system.in);
然后使用可变参数和累加,当然你需要有输入完成的标记,比如输入的为0时结束,求之前所有数的和
public
int
getsum(int...
num){
int
result
=
0;
for(int
n
:
a){
result
+=
n;
}
return
result;
}