JAVA实现字符串大小写转换问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA实现字符串大小写转换问题相关的知识,希望对你有一定的参考价值。
请教一个JAVA 编小程序题目:
(1)将输入的字串,如“ABcd3”变成小写。
(2) 将输入的字串如“ABcd3”变成大写。
(3)计算长度
!!注意:不能采用String类中toUpperClass,toLowerClass,count等方法,必须自己写算法实现!!
-----------------------------------------------------------------
以下是我写的界面, 已经写好了,就是关键的算法不会写,不能采用String类中toUpperClass,toLowerClass,count等方法。请大虾帮忙调整一下,补齐吧。写的好的 ,我肯定会加分的!!急啊·~~
import java.awt.*;
import java.awt.event.*;
public class X2 extends WindowAdapter implements ActionListener
Frame f;
Label l1,l2,l3,l4,l5;
TextField t1,t2,t3,t4;
Button b;
public static void main(String args[])
X2 be=new X2();
be.go();
public void go()
f=new Frame("Form1");
f.setLayout(null);
l1=new Label("字符串处理程序");
f.add(l1);
l1.setBounds(250,60,150,50);
l2=new Label("请输入要处理的字符串:");
f.add(l2);
l2.setBounds(50,150,150,20);
l3=new Label("长度为:");
f.add(l3);
l3.setBounds(50,250,150,20);
l4=new Label("小写形式为:");
f.add(l4);
l4.setBounds(50,300,150,20);
l5=new Label("其大些形式为");
f.add(l5);
l5.setBounds(50,350,150,20);
t1=new TextField("",5);
f.add(t1);
t1.setBounds(210,150,180,20);
t2=new TextField("",5);
f.add(t2);
t2.setBounds(210,250,100,20);
t3=new TextField("",5);
f.add(t3);
t3.setBounds(210,300,180,20);
t4=new TextField("",5);
f.add(t4);
t4.setBounds(210,350,180,20);
b=new Button("处理");
b.addActionListener(this);
f.add(b);
b.setBounds(50,190,70,35);
f.addWindowListener(this);
f.setSize(700,500);
f.setVisible(true);
public void actionPerformed(ActionEvent e)
public void windowClosing(WindowEvent e)
System.exit(0);
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class X2 extends WindowAdapter implements ActionListener
Frame f;
Label l1,l2,l3,l4,l5;
TextField t1,t2,t3,t4;
Button b;
public static void main(String args[])
X2 be=new X2();
be.go();
public void go()
f=new Frame("Form1");
f.setLayout(null);
l1=new Label("字符串处理程序");
f.add(l1);
l1.setBounds(250,60,150,50);
l2=new Label("请输入要处理的字符串:");
f.add(l2);
l2.setBounds(50,150,150,20);
l3=new Label("长度为:");
f.add(l3);
l3.setBounds(50,250,150,20);
l4=new Label("小写形式为:");
f.add(l4);
l4.setBounds(50,300,150,20);
l5=new Label("其大些形式为");
f.add(l5);
l5.setBounds(50,350,150,20);
t1=new TextField("",5);
f.add(t1);
t1.setBounds(210,150,180,20);
t2=new TextField("",5);
f.add(t2);
t2.setBounds(210,250,100,20);
t3=new TextField("",5);
f.add(t3);
t3.setBounds(210,300,180,20);
t4=new TextField("",5);
f.add(t4);
t4.setBounds(210,350,180,20);
b=new Button("处理");
b.addActionListener(this);
f.add(b);
b.setBounds(50,190,70,35);
f.addWindowListener(this);
f.setSize(700,500);
f.setVisible(true);
public void actionPerformed(ActionEvent e)
t2.setText(t1.getText().length()+"");
char[] c=t1.getText().toCharArray();
if(c.length<=0)
return;
for(int i=0;i<c.length;i++)
if(c[i]>='A'&&c[i]<='Z')
c[i]=(char) (c[i]-'A'+'a');
t3.setText(new String(c));
for(int i=0;i<c.length;i++)
c[i]=(char) (c[i]-'a'+'A');
t4.setText(new String(c));
public void windowClosing(WindowEvent e)
System.exit(0);
本回答被提问者采纳
java字符转换
编程将从键盘输入的文本中的所有大写英文字母改写为小写英文字母,小写字母改为大写字母。并统计大小字母的个数。
java字符串大小写转换的两种方法import java.io..*
public class convertToPrintString
public static void main(String[] args) throws IOException
InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(reader);
System.out.print("Please enter your word:");
String text = input.readLine();
String s = convertString(text);
System.out.println(s);
//第一种方法
public static String convertString(String src)
char[] array = src.toCharArray();
int temp = 0;
for (int i = 0; i < array.length; i++)
temp = (int) array[i];
if (temp <= 90 && temp >= 65)
// array[i]为大写字母
array[i] = (char) (temp + 32);
else if (temp <= 122 && temp >= 97)
// array[i]为小写字母
array[i] = (char) (temp - 32);
return String.valueOf(array);
获取个数
array.length就可以了
//第二种方法
public static String convertString(String str)
String upStr = str.toUpperCase();
String lowStr = str.toLowerCase();
StringBuffer buf = new StringBuffer(str.length());
for(int i=0;i
if(str.charAt(i)==upStr.charAt(i))
buf.append(lowStr.charAt(i));
else
buf.append(upStr.charAt(i));
return buf.toString();
} 参考技术A ////////////////////////////////
import java.util.*;
public class CharTest
public static void main(String [] args)
Scanner san = new Scanner(System.in);
System.out.println("请输入一个字符串: ");
String line = san.nextLine();
StringBuffer sb = new StringBuffer();
int lnum = 0;
int unum = 0;
for(char c: line.toCharArray())
if(Character.isLowerCase(c))
sb.append(Character.toUpperCase(c));
lnum ++;
else if(Character.isUpperCase(c))
sb.append(Character.toLowerCase(c));
unum ++;
System.out.println("转换后: \n" + sb);
System.out.println("原字符串小写字母的个数是: " + lnum);
System.out.println("原字符串大写字母的个数是: " + unum);
参考技术B import java.util.Scanner;
public class ChangeABC
public static void main(String[] args)
Scanner scanner = new Scanner(System.in);//定义一个扫描器
char c;
String s;
int count_capital = 0;//大写字母数;
int count_lowercase = 0;//小写字母数;
System.out.println("请输入文本后按回车:");
//while(scanner.hasNextLine())
s = new String(scanner.nextLine());
for(int i = 0 ; i < s.length(); i ++ )
c = s.charAt(i);
if(c >='a' && c <='z' )////判断是否为小写字母
c -= 32;//小写字母与大写字母的ASCII相差为32
count_capital++;
else if(c >= 'A' && c <= 'Z')//判断是否为大写字母
c += 32;
count_lowercase ++;//小写字母数增一;
System.out.print(c);//输出一个字符,已处理的.
System.out.println("\n统计结果:");
//
System.out.printf("小写字母数为%d,大写字母数为:%d", count_lowercase,count_capital);
运行结果为:
ywi297dksfhyUSEOYE4Jl709JSWFykjwyAYOP4U3JGy3egjlneytpfneayro
YWI297DKSFHYuseoye4jL709jswfYKJWYayop4u3jgY3EGJLNEYTPFNEAYRO
统计结果:
小写字母数为18,大写字母数为:32 参考技术C 不用那么麻烦
我只说说思路,因为自己的思考是很重要的
String text = null;//接受文本的变量
首先判断是不是大写字母,用循环判断,用toCharArray()将字符串打散为单个字符,然后存放在数组中,单个判断是不是大写或者小写。
最重要的是这一步,变量名.toUpperCase()将字母全部转换为大写,变量名.toLowerCase()全部转换为小写 参考技术D 可以试试 JOptionPane.showInputDialog(null,"输入字符");
读入,很酷的 第5个回答 2009-04-09 大----->小: new String().toLowerCase();
小----->大: new String().toUpperCase();
以上是关于JAVA实现字符串大小写转换问题的主要内容,如果未能解决你的问题,请参考以下文章