java字符串中大小写转换的问题

2025-02-21 18:23:02
推荐回答(3个)
回答1:

楼主,你的目的是想变换输入字符的大小写对吧?
例如输入abcdEFG后转换成ABCDefg是吧?

如果是的话,我已经帮你该好了,其实就是改了改你的ChangeHandler中的actionPerformed方法。

你的问题是你自定义了一个代表字符串标记int i=0;,但问题是那样的话你不能确定你的输入字符串的长度,所以会报越界IndexOutOfBoundsException异常。在下面我修改的程序是用for循环来和字符串长度str.length来标记你的输入字符串长度,再用if-else语句来判断输入字符串是大写则转换为小写,是小写则转换成大写。

改好的程序如下:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class changechar extends JFrame{

private JLabel L1,L2;
private JTextField T1,T2;
private JButton changeB,exitB;

public changechar()
{
L1=new JLabel("请输入字符:",SwingConstants.RIGHT);
L2=new JLabel("转换后字符为:",SwingConstants.RIGHT);
T1=new JTextField(10);
T2=new JTextField(10);
changeB=new JButton("变换");
ChangeHandler chhandler=new ChangeHandler();
changeB.addActionListener(chhandler);
exitB=new JButton("退出");
ExitHandler exhandler=new ExitHandler();
exitB.addActionListener(exhandler);
Container pane=getContentPane();
pane.setLayout(new GridLayout(3,2));
setTitle("字符转换");
pane.add(L1);
pane.add(T1);
pane.add(L2);
pane.add(T2);
pane.add(changeB);
pane.add(exitB);
setSize(400,200);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}

public class ChangeHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String str1;
str1=T1.getText();
char str[]=str1.toCharArray();
for(int i=0;i {
if(str[i]<='Z'&&str[i]>='A')
str[i]=Character.toLowerCase(str[i]);
else
str[i]=Character.toUpperCase(str[i]);
}
str1=new String(str);
T2.setText(str1);
}
}
public class ExitHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
}
public static void main(String[] args)
{
changechar chan=new changechar();
}
}

看看是你想要的吗?有问题欢迎提问啊!

回答2:

用 if else if

while(str[i]!='*')
{
if(str[i]<='Z'&&str[i]>='A'){
str[i]=Character.toLowerCase(str[i]);
}else if(str[i]<='z'&&str[i]>='a'){
str[i]=Character.toUpperCase(str[i]);
}
i++;
}

回答3:

直接to啊