JAVA 字符相加器

合集下载

JavaComparator字符排序(数字、字母、中文混合排序)

JavaComparator字符排序(数字、字母、中文混合排序)

JavaComparator字符排序(数字、字母、中⽂混合排序)这是修正前的排序效果:这是修正后的排序效果:完整⽰例:以下是排序的部份代码(⾮全部代码:拼⾳⾸字母算法不在其中)1. import java.util.Arrays;2. import parator;3. import java.util.regex.Matcher;4. import java.util.regex.Pattern;5.6. public class Demo {7.8. public static void main(String[] args) {9. // TODO Auto-generated method stub10. String fileNames[] = { "fss01", "fss2", "fss01_22", "fss3", "fss1", "fss10", "fss20", "fss4", "fss30", "fss21", "fss12","fss01_3" };11. char chFileNames[][] = new char[fileNames.length][];12. String[] oldSortedNames = new String[fileNames.length];13. for (int i = 0; i < fileNames.length; i++) {14. chFileNames[i] = fileNames[i].toCharArray();15. oldSortedNames[i] = fileNames[i];16. }17.18. // Arrays.sort(fileNames, StrLogicCmp);19. Arrays.sort(chFileNames, ChsLogicCmp);20. System.out.println("_Random_" + "\t" + "_Tradion_" + "\t" + "_Target_");21. String line;22. for (int i = 0; i < fileNames.length; i++) {23. line = fileNames[i] + (fileNames[i].length() >= 8 ? "\t" : "\t\t");24. line += oldSortedNames[i] + (oldSortedNames[i].length() >= 8 ? "\t" : "\t\t");25. line += new String(chFileNames[i]);26. System.out.println(line);27.28. }29.30.31. }32.33. static Comparator<String> StrLogicCmp = new Comparator<String>() {34.35. @Override36. public int compare(String o1, String o2) {37. // TODO Auto-generated method stub38. return 0;39. }40.41. };42.43. // "f01s2s22", "f1s02s2"44. static Comparator<char[]> ChsLogicCmp = new Comparator<char[]>() {45. class Int{46. public int i;47. }48. public int findDigitEnd(char[] arrChar, Int at) {49. int k = at.i;50. char c = arrChar[k];51. boolean bFirstZero = (c == '0');52. while (k < arrChar.length) {53. c = arrChar[k];54. //first non-digit which is a high chance.55. if (c > '9' || c < '0') {56. break;57. }58. else if (bFirstZero && c == '0') {59. at.i++;60. }61. k++;62. }63. return k;64. }65.66. @Override67. public int compare(char[] a, char[] b) {68. if(a != null || b != null){69. Int aNonzeroIndex = new Int();70. Int bNonzeroIndex = new Int();71. int aIndex = 0, bIndex = 0,72. aComparedUnitTailIndex, bComparedUnitTailIndex;73.74. // Pattern pattern = pile("D*(d+)D*");75. // Matcher matcher1 = pattern.matcher(a);76. // Matcher matcher2 = pattern.matcher(b);77. // if(matcher1.find() && matcher2.find()) {78. // String s1 = matcher1.group(1);79. // String s2 = matcher2.group(1);80. // }81.82. while(aIndex < a.length && bIndex < b.length){83. //aIndex <84. aNonzeroIndex.i = aIndex;85. bNonzeroIndex.i = bIndex;86. aComparedUnitTailIndex = findDigitEnd(a, aNonzeroIndex);87. bComparedUnitTailIndex = findDigitEnd(b, bNonzeroIndex);88. //compare by number89. if (aComparedUnitTailIndex > aIndex && bComparedUnitTailIndex > bIndex)90. {91. int aDigitIndex = aNonzeroIndex.i;92. int bDigitIndex = bNonzeroIndex.i;93. int aDigit = aComparedUnitTailIndex - aDigitIndex;94. int bDigit = bComparedUnitTailIndex - bDigitIndex;95. //compare by digit96. if(aDigit != bDigit)97. return aDigit - bDigit;98. //the number of their digit is same.99. while (aDigitIndex < aComparedUnitTailIndex){100. if (a[aDigitIndex] != b[bDigitIndex])101. return a[aDigitIndex] - b[bDigitIndex];102. aDigitIndex++;103. bDigitIndex++;104. }105. //if they are equal compared by number, compare the number of '0' when start with "0"106. //ps note: paNonZero and pbNonZero can be added the above loop "while", but it is changed meanwhile. 107. //so, the following comparsion is ok.108. aDigit = aNonzeroIndex.i - aIndex;109. bDigit = bNonzeroIndex.i - bIndex;110. if (aDigit != bDigit)111. return aDigit - bDigit;112. aIndex = aComparedUnitTailIndex;113. bIndex = bComparedUnitTailIndex;114. }else{115. if (a[aIndex] != b[bIndex])116. return a[aIndex] - b[bIndex];117. aIndex++;118. bIndex++;119. }120.121. }122.123. }124. return a.length - b.length;125. }126.127. };128. }2021-11-23更新算法--排序时不区分字母⼤⼩写这是之前的算法:更新后的效果:。

java对某一字段内的数值进行求和计算的方法

java对某一字段内的数值进行求和计算的方法

java对某一字段内的数值进行求和计算的方法【原创版3篇】目录(篇1)1.Java 概述2.对某一字段内的数值进行求和的算法原理3.Java 代码示例4.结论正文(篇1)【1.Java 概述】Java 是一种广泛使用的计算机编程语言,它具有跨平台、面向对象、易于学习等特点。

Java 的广泛应用,使得对 Java 相关技术的需求越来越大,如对某一字段内的数值进行求和计算的方法。

【2.对某一字段内的数值进行求和的算法原理】假设有一个二维数组,其中每一行表示一个记录,每一列表示一个字段。

要求计算某一字段内的所有数值之和,可以采用以下算法:1.遍历二维数组,获取某一字段的所有数值;2.将这些数值累加,得到总和;3.返回总和。

【3.Java 代码示例】下面是一个简单的 Java 代码示例,展示了如何对二维数组中某一字段内的数值进行求和计算:```javapublic class SumOfField {public static void main(String[] args) {// 示例二维数组int[][] data = {{1, 2, 3},{4, 5, 6},{7, 8, 9}};// 定义求和的方法int sum = sumOfField(data, 1); // 求和的方法参数:二维数组和需要求和的字段索引// 输出结果System.out.println("某一字段内的数值之和为:" + sum);}// 对某一字段内的数值进行求和计算的方法public static int sumOfField(int[][] data, int fieldIndex) {int sum = 0;for (int i = 0; i < data.length; i++) {sum += data[i][fieldIndex];}return sum;}}```【4.结论】通过以上代码示例,我们可以看到如何使用 Java 编写一个简单的程序,对二维数组中某一字段内的数值进行求和计算。

java 加法计算器

java           加法计算器

编程实现如下图形界面,在第一个文本框中输入第一个整数,在第二个文本框中输入第二个整数,当点击“相加”按钮时,第一个数和第二个数相加,结果显示在第三个文本框中。

import java.awt.*;import java.awt.event.*;class add extends WindowAdapter implementsActionListener{Frame f;Panel p;Button be;TextField tf1,tf2,answer;Label l1,l2,ans;String s1,s2;int t1,t2,t3;public static void main(String args[]){ add cg=new add(); cg.go(); }public void go(){l1=new Label("第一个整数");l2=new Label("第二个整数");ans=new Label("相加结果");tf1=new TextField("0",15);tf2=new TextField("0",15);answer=new TextField("0",15);be=new Button("相加");f=new Frame ("相加");p=new Panel();f.add(p,"Center");f.add(be,"South");p.setLayout(new GridLayout(3,2));p.add(l1);p.add(tf1);p.add(l2);p.add(tf2);p.add(ans);p.add(answer);f.setSize(300,300);be.addActionListener(this);f.addWindowListener(this);f.pack();//调整窗口大小f.setVisible(true); }public void actionPerformed(ActionEvent e){ if(e.getSource()==be){ s1=tf1.getText();s2=tf2.getText();t1=Integer.parseInt(s1);t2=Integer.parseInt(s2);t3=t1+t2;answer.setText((new Integer(t3)).toString());} }public void windowClosing(WindowEvent ev){System.exit(0);}}。

Java运算符详解:掌握各种运算符的应用场景

Java运算符详解:掌握各种运算符的应用场景

Java运算符详解:掌握各种运算符的应用场景引言:在Java编程中,运算符是一种用于执行各种数学和逻辑运算的特殊符号。

了解和掌握各种运算符的使用方法和应用场景对于编写高效、可靠的代码至关重要。

本文将详细介绍Java中常见的运算符,并探讨它们在不同情境下的应用。

一、算术运算符算术运算符用于执行基本的数学运算,如加减乘除和取余等。

在实际编程中,算术运算符经常用于计算和处理数据。

下面是一些常见的算术运算符及其应用场景:1. 加法运算符(+):用于将两个数值相加,也可以用于字符串的拼接。

在编写计算器程序或处理字符串连接的场景中经常使用。

2. 减法运算符(-):用于将一个数值减去另一个数值。

在处理数值差异或计算时间间隔等场景中常用。

3. 乘法运算符(*):用于将两个数值相乘。

在编写计算程序或计算面积、体积等场景中使用频率较高。

4. 除法运算符(/):用于将一个数值除以另一个数值。

在编写计算程序或计算比率、平均值等场景中常见。

5. 取余运算符(%):用于计算两个数值相除后的余数。

在判断一个数是否为偶数或奇数、计算循环周期等场景中常用。

二、赋值运算符赋值运算符用于将一个值赋给一个变量。

在编程中,赋值运算符是最常用的运算符之一。

以下是常见的赋值运算符及其应用场景:1. 简单赋值运算符(=):用于将右边的值赋给左边的变量。

在初始化变量或更新变量值的场景中经常使用。

2. 复合赋值运算符(+=、-=、*=、/=等):用于将右边的值与左边的变量进行运算,并将结果赋给左边的变量。

在累加、累减、累乘等场景中常见。

三、比较运算符比较运算符用于比较两个值的大小或判断两个值是否相等。

在条件判断和逻辑运算中,比较运算符扮演着重要的角色。

以下是常见的比较运算符及其应用场景:1. 相等运算符(==):用于判断两个值是否相等。

在条件判断和对象比较等场景中常用。

2. 不相等运算符(!=):用于判断两个值是否不相等。

在条件判断和对象比较等场景中使用频率较高。

java 中实现 string串直接计算的方法

java 中实现 string串直接计算的方法

java 中实现 string串直接计算的方法在Java中,有很多种方法可以实现对字符串直接进行计算,比如使用内置的String类方法、正则表达式、字符串拼接、字符串分割等。

下面我将逐一介绍这些方法的使用方式和注意事项。

1.使用String类方法进行计算String类是Java中用来表示字符串的类,它提供了很多常用的方法来操作字符串,在字符串直接计算中也可以使用这些方法。

比如,可以使用charAt()方法来获取字符串中指定位置的字符,使用length()方法来获取字符串的长度,使用indexOf()方法来查找指定字符或子字符串在字符串中的位置等。

另外,String类中还提供了一些方法来对字符串进行拼接、替换、转换大小写等操作。

这些方法可以在直接计算中用来完成一些简单的字符串操作,比如将两个字符串拼接在一起、将字符串转换为大写或小写、将字符串中指定字符替换为其他字符等。

2.使用正则表达式进行计算正则表达式是一种强大的字符串匹配和处理工具,在Java中可以使用java.util.regex包中的Pattern和Matcher类来实现对字符串的正则表达式匹配。

使用正则表达式可以实现对字符串中特定模式的匹配、提取和替换操作,从而实现对字符串的计算。

比如,可以使用Pattern类的compile()方法来编译正则表达式模式,然后使用Matcher类的find()方法来查找匹配的部分,使用group()方法来获取匹配的子字符串,使用replaceFirst()或replaceAll()方法来替换匹配的部分等。

3.使用字符串拼接进行计算字符串拼接是一种常用的字符串操作方法,在Java中可以使用加号(+)来实现字符串拼接。

比如,可以使用加号将多个字符串拼接在一起,也可以将字符串和其他数据类型(比如数字、布尔值)拼接在一起,从而实现字符串的直接计算。

需要注意的是,在进行字符串拼接时要注意避免产生大量的临时字符串对象,这样会占用大量的内存和影响性能。

string加法运算

string加法运算

string加法运算字符串加法运算是指将两个字符串进行拼接的操作。

在编程中,我们可以使用加号(+)来实现字符串的拼接。

简单来说,就是将两个字符串连接起来,形成一个新的字符串。

字符串加法运算在编程中非常常见,特别是在处理文本数据时。

例如,我们可以将多个字符串连接成一个完整的句子,或者将多个变量的值转换为字符串并连接起来。

下面我们来看一些字符串加法运算的应用场景和实例:1.字符串连接最常见的应用场景之一是将两个字符串连接起来。

例如,将两个单词连接成一个新的单词,或者将两个句子连接成一个新的句子。

示例:```str1 = "Hello"str2 = "World"new_str = str1 + str2print(new_str) #输出:HelloWorld```2.字符串与数字的连接在实际应用中,我们经常需要将数字转换为字符串并与其他字符串进行连接。

这主要应用于打印输出或拼接字符串时。

示例:```num = 123str_num = str(num)new_str = "The number is: " + str_numprint(new_str) #输出:The number is: 123```3.多个字符串的连接我们还可以将多个字符串连接成一个更长的字符串。

这在处理大段文本或生成动态文本时非常有用。

示例:```str1 = "Hello"str2 = "World"str3 = "How"str4 = "are"str5 = "you"new_str = str1 + " " + str2 + ", " + str3 + " " + str4 + " " + str5 + "?"print(new_str) #输出:Hello World, How are you?```4.字符串加法的嵌套运算在字符串加法运算中,我们可以通过嵌套的方式进行多次连接。

java string 算术运算

java string 算术运算

java string 算术运算Java中的字符串(String)不仅可以进行普通的文本处理,还可以进行一些算术运算。

在本文中,我们将探讨如何使用Java的String 类进行算术运算,并且介绍一些常用的操作方法。

让我们来了解一下Java中的String类。

String是Java中的一个引用类型,用于表示一串字符序列。

它是不可变的,即一旦创建,就不能被修改。

这意味着我们不能直接对String进行算术运算,但我们可以使用一些方法来模拟算术运算的效果。

一、字符串连接字符串连接是最常见的一种算术运算,用于将两个字符串连接在一起。

在Java中,我们可以使用"+"操作符来进行字符串连接。

例如,我们可以将两个字符串"Hello"和"World"连接在一起:```javaString str1 = "Hello";String str2 = "World";String result = str1 + str2;System.out.println(result); // 输出:HelloWorld```二、字符串与数字的运算有时候,我们需要将字符串与数字进行运算。

在Java中,可以使用一些方法将字符串转换为数字,然后再进行运算。

例如,我们可以使用Integer类的parseInt()方法将一个字符串转换为整数:```javaString str = "123";int num = Integer.parseInt(str);int result = num + 456;System.out.println(result); // 输出:579```三、字符串与其他类型的运算除了数字,我们还可以将字符串与其他类型进行运算。

在这种情况下,Java会自动将其他类型转换为字符串,并进行字符串连接。

java常见运算符

java常见运算符

java常见运算符
Java中的算术运算符包括加号+、减号-、乘号*、除号/、取模%等。

其中,加号还可以用于字符串的拼接操作。

2. 关系运算符
Java中的关系运算符包括大于号>、小于号<、大于等于号>=、小于等于号<=、等于号==、不等于号!=等。

这些运算符通常用于判断两个值之间的大小关系。

3. 逻辑运算符
Java中的逻辑运算符包括与运算符&&、或运算符||、非运算符!等。

这些运算符通常用于组合多个条件,实现复杂的条件判断。

4. 位运算符
Java中的位运算符包括按位与&、按位或|、按位异或^、按位取反~、左移<<、右移>>等。

这些运算符通常用于对二进制数进行位运算。

5. 赋值运算符
Java中的赋值运算符包括等号=、加等于+=、减等于-=、乘等于*=、除等于/=、取模等于%=等。

这些运算符用于将一个值赋给变量,并可以同时进行相应的算术运算。

6. 条件运算符
Java中的条件运算符包括问号?和冒号:,通常也称为三目运算符。

该运算符通常用于简化if...else语句的写法。

以上是Java中常见的运算符,掌握这些运算符的使用方法对于
Java程序员来说是非常重要的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一.实验题目:JA V A环境及应用
二.实验目的及内容
1.实验目的:
掌握和巩固JA V A基础知识
2.实验内容:
(1).Java语言开发流程
(2).编写一个程序,该程序实现以下功能:把自己的学号看作是一个整数n,计算并在屏幕上输出该整数各位相加的结果。

例如:学号为12345的同学应计算并输出结果15。

三.实验要求
1.描述Windows下JDK环境变量的设置。

2.描述上述程序的设计、实现和结果,并对结果进行分析;设计和实现时要求上述功能放到main函数之外的其他函数中实现。

3.以上面程序为例完整叙述(1)在命令行方式下Java语言的开发流程;(2)在NetBeans集成开发环境中的开发流程。

四.实验步骤
1.安装JA V A程序:
(1).安装jdk-6u21-windows-i586.exe文件;
(2).安装netbeans-6.9.1-ml-windows.exe文件。

2.Windows 7下JDK环境变量的设置描述:
(1).执行“我的电脑”右键快键菜单中的“属性”命令,在控制面板主页中选择“高级系统设置”。

(2).在系统属性对话框中选择“高级”选项卡,单击下面的“环境变量”按钮,如下图所示:
(3).在“环境变量”对话框中的“系统变量”列表中,选中Path变量,单击“编辑”按钮,如下图所示:
(4).在“编辑系统变量”对话框中,将“C:\Program Files\Java\jdk1.6.0_21\bin”输入到“变量值”文本框中,如下图,再单击“确定”按钮,就将JA V A编辑器javac.exe和解释器java.exe等可执行文件的路径添加到Path变量中。

3.在NetBeans集成开发环境中的开发流程:
(1).打开NetBeans IDE 6.9.1,点击“文件”菜单选择“新建项目”在弹出的对话框中输入相应的项目名、项目位置,系统将根据项目位置建立相应的项目文件夹。

(2).项目新建好后点击项目下面的子目录,在“源包”上右键-->选择“新建”--->java类,在弹出的对话框中输入相应的类名,单击“完成”,就创建了一个.java 文件,如下图示,新建好后在右侧的工作区中设计编写程序:
(3).若程序事先已设计好,则可将其放置在项目文件夹下面的src子文件夹下面,在打开项目时缺省包下面会显示相应的.java文件。

(4).在程序设计好之后,右键相应的.java文件,选择“调试文件”,在程序调试成功没有错误后右键.java文件,选择“运行文件”,如下图示:
(5).Java源文件(*.java)通过编译器javac.exe编译生成字节码文件(*.class),再由解释器java.exe执行。

4.在命令行方式下Java语言的开发流程:
(1).执行命令设置环境变量:
除了再在桌面上设置环境变量外,也可执行命令jdk6.bat完成Path和Classpath变量的路径设置。

执行“开始--->程序--->附件--->命令提示符”,打开MS-DOS窗口,进入存放.java的文件夹,输入命令如下:
D:\java
(2).编译:设采用文本编辑器已将java源程序编译为一个源程序文件,执行编译命令javac.exe对.java文件进行编译,在MS-DOS窗口中,输入编译命令如下:
cd java
D:\java>javac PlusJFrame.java
(3).运行Application应用文件:
对于Application应用程序,执行命令java.exe可运行字节码文件PlusJFrame.java,命令如下:
D:\java\java PlusJFrame
编译、运行Application应用程序及运行结果如下图所示:
运行截图:
五.源程序文件
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class PlusJFrame extends JFrame implements ActionListener //框架窗口响应单击事件
{
private JTextField text_number,text_result;
private JButton button_result;
public PlusJFrame()
{
super("字符相加器"); //窗口标题
this.setBounds(280,100,300,240); //设置框架的位置和尺寸
this.setBackground(java.awt.Color.blue); //设置窗口背景颜色
this.setLayout(new java.awt.FlowLayout(FlowLayout.LEFT)); //框架流布局且做对齐
this.add(new JLabel("学号"));
text_number=new JTextField("",20);
this.add(text_number);
button_result=new JButton("运算");
this.add(button_result);
button_result.addActionListener(this); //为按钮注册单击事件监听器,委托当前对象处理事件
this.add(new JLabel("运算结果"));
text_result=new JTextField(10);
this.add(text_result);
text_result.setEditable(false); //结果不可以编辑
this.addWindowListener(new WinClose()); //为框架注册窗口监听器,委托WinClose对象处理事件
this.setVisible(true); //设置窗口可见
}
public void actionPerformed(ActionEvent e) //单击事件处理方法,实现ActionListener接口
{
if(e.getSource()==button_result) //e.getSourse()获得当前事件源组件,比较引用
{
String str=text_number.getText(); //获得文本行的字符串
text_result.setText(NumbertoString(str));
}
}
public static String NumbertoString(String str)
{
int a=0;
for(int i=0;i<str.length();i++)
{
char ch=str.charAt(i); //获得字符
a=a+(int)ch-48;
}
String result=""+a;
return result;
}
public static void main(String arg[])
{
new PlusJFrame();
}
}
class WinClose extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
六.程序结果分析
1.描述Windows下JDK环境变量的设置,在命令行方式下Java语言的开发流程和在NetBeans集成开发环境中的开发流程在上述的试验步骤中。

2.实验的运行结果:
3.程序分析:该程序设计的不完备之处在于它不能识别非数值的输入,当输入非数值时程序将把其当做输入字符对应的ASACLL码对应输出结果。

4.在NetBeans IDE 6.9.1注释中如出现注释部分为乱码,可用下面的方法纠正:选中你的工程,查看工程的属性(propeties),选中源(Source),看到最后的
编码(Encoding)。

选择GB2312或gbk就可以了。

5.实验总结:
通过本次的Java环境及应用实验,认识到JAVA的运行环境,包括JAVA程序的安装,JDK环境变量的设置,以及在命令行方式下Java语言的开发流程和在NetBeans集成开发环境中的开发流程。

此次上机加深了对JA V A所学知识的应用,把所学的知识用以实践。

同时加深了知识的理解。

通过上机了解JA V A的图形用户界面,包括其中的AWT组件,按钮组件等。

对比C、C++、汇编,JA V A的可视化图形界面激起了自己对JA V A 学习的兴趣,在今后的学习中努力学精通并熟练运用JA V A。

相关文档
最新文档