2016.4.15【i码邦】每日一练——字母大小写转换

编程实现:下图问题。  不限形式,不限格局,百花齐放才是编程的春天!!


tu0415.png


我们只直播每日一练的编程实战,动手才是王道!
每日一练直播群号:476036218
 

QQ截图20160406102536.png

 

--来自网页客户端
已邀请:

a513470086 - G i码邦(爱码邦) --没理由!

赞同来自:

package i码邦;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
//每日一练 20160415
//编程实现:请将如下短语"this is imabang i need it"
//每个单词首字母大写,并且通过屏幕输入英文句子实现首字母大写的转换。
public class Test016 {
    public static void main(String args[]) {
        System.out.println("请输入您要转换的句子:");
        try {
            BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
            String s = in.readLine();
            StringBuffer s1 = new StringBuffer();
            StringTokenizer st = new StringTokenizer(s);

            while (st.hasMoreTokens()) {
                String str = st.nextToken();

                char c = (str).charAt(0);
                if (c >= 'a' && c <= 'z') {
                    c = (char) ((int) c - 32);
                    s1.append(c);
                } else
                    s1.append(c);

                for (int i = 1; i < (str).length(); i++) {
                    char c1 = (str).charAt(i);
                    s1.append(c1);
                }

                s1.append(" ");

            }

            System.out.print(" " + s1.toString());

        } catch (IOException e) {
            System.out.println(e);
        }
    }

 
 
 
 

--来自网页客户端

未探索的星球 - まあ、どうせ俺は醜いものだろう

赞同来自: 何永文

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test0415 {
    // 请将如下短语 “this is imabang, i need it” 每个单词首字母大写
    // 并且通过屏幕输入英语句子实现首字母大写的转换

    public static void main(String[] args) {
        //原字符串
        StringBuffer str = new StringBuffer("this is imabang, i need it");

        //正则:
        //1.任何字符 至少一个长度 \w+
        //2.结尾可能包含逗号 \,*
        //3.结尾可能包含空格符 \s*
        String regex = "\\w+\\,*\\s*";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(str);
        while (matcher.find()) {
            int start = matcher.start();
            str.replace(start, start + 1, str.substring(start, start + 1).toUpperCase());
        }

        System.out.println(str);
    }
}
 

0415.png


--来自网页客户端

未探索的星球 - まあ、どうせ俺は醜いものだろう

赞同来自:

这次练习给我的收获:
  在 Java 中使用正则表达式的反向选择,并操作该反向选择是不可行的。
   如下代码:
   String regex = "\\b(\\w)";
   str.replaceAll(regex, "$1".toUpperCase());
  不会将首字母转为大写
 
参考:
http://bbs.csdn.net/topics/390784402

--来自网页客户端

Cyx294176957

赞同来自:

import java.util.Scanner;
public class APIDemo {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一行英文");
String str=sc.nextLine();
String[] arr=str.split("s");
for(int i=0;i<arr.length;i++){
arr[i]=arr[i].replaceFirst(
arr[i].substring(0,1),
arr[i].substring(0,1).toUpperCase());
System.out.print(arr[i]+" ");
}
System.out.println("hello world");
}
}

--来自移动客户端

tuogoudeyu - 此人很懒

赞同来自:

image.png

image.png


import java.util.Scanner;
/**
* 将空格分隔的每个英文字母的首字母转化为
* 大写字母
* @author Dream
*/
public class ToUpp {
private String eng;//
public ToUpp(String eng) {
//构造函数,获取用户输入的字符串
this.eng = eng;
}
/**
* 用于转换单个字符串的首字母转换为大写
* @param str
* @return
*/
public String FirstUpper(String str){
char [] chs = new char[str.length()];
//新建字符数组用于保存字符串
chs[0]=str.charAt(0);
//获取首字母
chs[0]=Character.toUpperCase(chs[0]);
//转换为大写并重新赋给首字母(直接改写)
for(int i=1; i<str.length();i++){
chs[i]=str.charAt(i);
//获取剩余的字符串
}
return String.valueOf(chs);
//将改造后的字符数组转化为字符串

}
public String toString(){
String[] reg =eng.split("\\s+");
/*通过正则表达式\\s+(一个或多个空格)分割输入的字符串
* 后,保存为 字符串 数组。
*/

String temp="";//初始化改造后的字符串
for(int i=0;i<reg.length;i++){
temp+=FirstUpper(reg[i])+" ";
/*通过字符串拼接将每个改造后的字符串
* 用空格相连
*/
}
return temp.trim();//trim()去除最后的空格,转换完成
}

public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入英文语句(转换首字母为大写):");
String eng=scan.nextLine().trim();
//获取用户输入 去除前后空格
ToUpp t= new ToUpp(eng);
//新建ToUpp对象
System.out.println("转换前:"+eng);
System.out.println("转换后:"+t.toString());
//调用重写的toString方法打印结果

}
}

--来自移动客户端

ziyou8513 - 在自学Java的道路上缓慢爬行ing

赞同来自:

public static void main(String[] args) {
        String str="this is idebug,i need it!";
        char[] c = str.toCharArray();
        for(int i=0;i<str.length();i++){
            if(i==0){
                Character.valueOf(str.charAt(i));
                c[i]= Character.toUpperCase(str.charAt(i));
            }
            if(str.charAt(i)==' ' || str.charAt(i)==','){
                Character.valueOf(str.charAt(i+1));
                c[i+1] = Character.toUpperCase(str.charAt(i+1));
            }
        }
        System.out.println(c);
    }

--来自网页客户端
/**
* 每日一练 20160415
* 将“this is imabang,i need it”每个单词字母大写,
* 并且实现通过屏幕输入英语句子实现首字母大写的转换
*/
public void ex160415(){
//翻译固定的句子
String str="this is imabang,i need it";
str=StaticFunction.letterCaseChange(str);
System.out.println(str);
//实现从屏幕输入句子
InputStreamReader isr=new InputStreamReader(System.in); //标准输入
BufferedReader br=new BufferedReader(isr); //建立缓冲模式
try{
System.out.println("输入一行语句:");
str=br.readLine();
str=StaticFunction.letterCaseChange(str);
System.out.println(str);
}catch(IOException ex){
ex.printStackTrace();
}
}

public class StaticFunction {
/**
* 对一串字符进行首字母大写转换
*/
public static String letterCaseChange(String str){
char[] a=str.toCharArray();
for(int i=0;i<a.length;i++){
switch(a[i]){
case 32: //空格
case 44: //英文逗号
case 46: //英文句号
case 65292: //中文逗号
case 12290: //中文句号
if(i+1<a.length && a[i+1]>96 && a[i+1]<123){
a[i+1]=(char)(a[i+1]-32);
}
break;
}
if(i==0){
if(a[i]>96 && a[i]<123){
a[i]=(char)(a[i]-32);
}
}

}
return String.valueOf(a);

}
}

--来自移动客户端

fengyun12

赞同来自:

public void ex160415(){
//翻译固定的句子
String str="this is imabang,i need it";
char[] a=str.toCharArray(); //把字符串类型转为字符数组
for(int i=0;i<a.length;i++){
if(i==0){
if(Character.isLetter(a[i])){
a[i]=Character.toUpperCase(a[i]);
i++;
}
}
else if(Character.isSpaceChar(a[i]) || Character.compare(a[i], ',')==0 || Character.compare(a[i], '.')==0){
if(i<a.length-1 && Character.isLetter(a[i+1])){
a[i+1]=Character.toUpperCase(a[i+1]);
i++;
}
}
}
System.out.println(String.valueOf(a));
}

--来自移动客户端

lys10038

赞同来自:

应该不全面

--来自移动客户端

要回复问题请先登录注册

Template error, template file not found