
java字符串中大小写转换的问题
java字符串中的大写变小写,小写变大写,可是不知为什么不可以,只以变大写,我认为是这的问题while(str[i]!='*'){if(str[i]<='Z'&&str[...
java字符串中的大写变小写,小写变大写,可是不知为什么不可以,
只以变大写,
我认为是这的问题
while(str[i]!='*')
{
if(str[i]<='Z'&&str[i]>='A')
str[i]=Character.toLowerCase(str[i]);
if(str[i]<='z'&&str[i]>='a')
str[i]=Character.toUpperCase(str[i]);
i++;
}
但是不知道怎么改,也不知道为什么,请大家帮助,最好说能说明原因
下面是全部代码
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;
int i=0;
str1=T1.getText();
char str[]=str1.toCharArray();
while(str[i]!='*')
{
if(str[i]<='Z'&&str[i]>='A')
str[i]=Character.toLowerCase(str[i]);
if(str[i]<='z'&&str[i]>='a')
str[i]=Character.toUpperCase(str[i]);
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();
}
} 展开
只以变大写,
我认为是这的问题
while(str[i]!='*')
{
if(str[i]<='Z'&&str[i]>='A')
str[i]=Character.toLowerCase(str[i]);
if(str[i]<='z'&&str[i]>='a')
str[i]=Character.toUpperCase(str[i]);
i++;
}
但是不知道怎么改,也不知道为什么,请大家帮助,最好说能说明原因
下面是全部代码
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;
int i=0;
str1=T1.getText();
char str[]=str1.toCharArray();
while(str[i]!='*')
{
if(str[i]<='Z'&&str[i]>='A')
str[i]=Character.toLowerCase(str[i]);
if(str[i]<='z'&&str[i]>='a')
str[i]=Character.toUpperCase(str[i]);
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();
}
} 展开
3个回答
展开全部
楼主,你的目的是想变换输入字符的大小写对吧?
例如输入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<str.length;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();
}
}
看看是你想要的吗?有问题欢迎提问啊!
例如输入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<str.length;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();
}
}
看看是你想要的吗?有问题欢迎提问啊!
展开全部
用 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++;
}
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++;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接to啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询