删除字符串中大于 10 的重复数字
Remove duplicates numbers above 10 in a String
我制作了一个程序,可以在按下按钮时删除字符串中重复的字符。因此,例如,如果字符串为“23332”,则输出为“23”。现在我的问题是,这不适用于 10 以上的数字。如果字符串为“10”,程序将其视为 1 和 0,而不是 10。是否可以以某种方式标记该数字,以便程序知道它是10 而不是 1 和 0?提前致谢。这是我的代码:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class test extends JFrame implements ActionListener {
private JPanel panel;
private JLabel label;
private JButton ok;
private String str;
public test() {
panel = new JPanel();
ok = new JButton("OK");
ok.addActionListener(this);
str = "10, 11, 12, 13, 10";
label = new JLabel(str);
panel.add(ok);
panel.add(label);
add(panel);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new test();
}
@Override
public void actionPerformed(ActionEvent arg0) {
String temp="";
HashMap<Integer,Character> tc = new HashMap<Integer,Character>();
char [] charArray = str.toCharArray();
for (Character c : charArray)
{
if (!tc.containsValue(c))
{
temp=temp + c.toString() + ", ";
tc.put(c.hashCode(),c);
}
}
label.setText(temp);
}
}
编辑:
String temp = "";
HashMap<Integer,Character> tc = new HashMap<Integer,Character>();
String[] strArray = str.split(",");
for(String string : strArray) {
char [] charArray = string.toCharArray();
for (Character c : charArray)
{
if (!tc.containsValue(c))
{
temp=temp + c.toString() + ", ";
tc.put(c.hashCode(),c);
}
}
}
label.setText(temp);
假设您使用的是分隔符,例如 ,
,您可以使用 String.split()
方法,该方法为您提供一个字符串数组并循环遍历所有这些字符串,这是您需要的代码:
String[] strArray = str.split(",");
for(String string : strArray) {
char [] charArray = string.toCharArray();
for (Character c : charArray)
{
if (!tc.containsValue(c))
{
temp=temp + c.toString() + ", ";
tc.put(c.hashCode(),c);
}
}
}
编辑:
如果您需要检查大于 10 的重复数字,您需要使用 Integer.parseIn() 来解析字符串值并将您的映射从 HashMap<Integer,Character>
更改为 HashMap<Integer,String>
,这里是代码:
String[] strArray = str.split(",");
for(String string : strArray) {
if (!tc.containsValue(string)) {
temp=temp + string + ", ";
tc.put(Integer.parseIn(string), string);
}
}
创建一个用逗号分隔的字符串。将每个元素添加到一组 strings.Now 你有一组唯一的数字。(设置丢弃重复值)
Set<String> unique = new HashSet<String>();
String myString[]=str.split(",");
for(String t:myString)
unique.add(t)
我制作了一个程序,可以在按下按钮时删除字符串中重复的字符。因此,例如,如果字符串为“23332”,则输出为“23”。现在我的问题是,这不适用于 10 以上的数字。如果字符串为“10”,程序将其视为 1 和 0,而不是 10。是否可以以某种方式标记该数字,以便程序知道它是10 而不是 1 和 0?提前致谢。这是我的代码:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class test extends JFrame implements ActionListener {
private JPanel panel;
private JLabel label;
private JButton ok;
private String str;
public test() {
panel = new JPanel();
ok = new JButton("OK");
ok.addActionListener(this);
str = "10, 11, 12, 13, 10";
label = new JLabel(str);
panel.add(ok);
panel.add(label);
add(panel);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new test();
}
@Override
public void actionPerformed(ActionEvent arg0) {
String temp="";
HashMap<Integer,Character> tc = new HashMap<Integer,Character>();
char [] charArray = str.toCharArray();
for (Character c : charArray)
{
if (!tc.containsValue(c))
{
temp=temp + c.toString() + ", ";
tc.put(c.hashCode(),c);
}
}
label.setText(temp);
}
}
编辑:
String temp = "";
HashMap<Integer,Character> tc = new HashMap<Integer,Character>();
String[] strArray = str.split(",");
for(String string : strArray) {
char [] charArray = string.toCharArray();
for (Character c : charArray)
{
if (!tc.containsValue(c))
{
temp=temp + c.toString() + ", ";
tc.put(c.hashCode(),c);
}
}
}
label.setText(temp);
假设您使用的是分隔符,例如 ,
,您可以使用 String.split()
方法,该方法为您提供一个字符串数组并循环遍历所有这些字符串,这是您需要的代码:
String[] strArray = str.split(",");
for(String string : strArray) {
char [] charArray = string.toCharArray();
for (Character c : charArray)
{
if (!tc.containsValue(c))
{
temp=temp + c.toString() + ", ";
tc.put(c.hashCode(),c);
}
}
}
编辑:
如果您需要检查大于 10 的重复数字,您需要使用 Integer.parseIn() 来解析字符串值并将您的映射从 HashMap<Integer,Character>
更改为 HashMap<Integer,String>
,这里是代码:
String[] strArray = str.split(",");
for(String string : strArray) {
if (!tc.containsValue(string)) {
temp=temp + string + ", ";
tc.put(Integer.parseIn(string), string);
}
}
创建一个用逗号分隔的字符串。将每个元素添加到一组 strings.Now 你有一组唯一的数字。(设置丢弃重复值)
Set<String> unique = new HashSet<String>();
String myString[]=str.split(",");
for(String t:myString)
unique.add(t)