cjava字符串
1. java字符串
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Solution {
public static void main(String[] args) {
String str = null;
int x = 0;
String temp = null;
System.out.println("please enter the string:");
try {
BufferedReader br1 = new BufferedReader(new InputStreamReader(
System.in));
str = br1.readLine();
System.out.println("please enter the integer:");
BufferedReader br2 = new BufferedReader(new InputStreamReader(
System.in));
temp = br2.readLine();
x = Integer.parseInt(temp);
char[] c = str.toCharArray();
System.out.println(c[x-1]);
} catch (IOException e) {
e.printStackTrace();
}
}
}
2. java中String是什么
Java字符串,在开发中用的是比较频繁的一个类,我们平时要表达一句话的含义,就可以使用字符串(String)来详细的描述;
Java中已经将字符串进行了很好的封装,我们可以使用String类将字符串进行随意的操作,比如字符串的反转,字符串的分割,字符串的拼接等。
Java String类提供了很多的构造方法,他可以根据我们传入的不同的参数,转换成我们想要的数据;比如可以将字符数组,字节数据,ASCII码数组转换为字符串,而且可以根据传入的参数,判断将数据的哪些位置的内容转换为字符串;
在java中除了String之外还有几个常用的字符串类StringBuffer和StringBuilder,在执行效率方面StringBuilder最快,String最慢,在Java源码中,String类里面有个常量private final char value[];用来存储字符串信息,多以对象一旦创建成功之后,内容就不会改变,但实际上修改值得时候,是不断的创建回收内容,所以String速率最慢;StringBuffer和StringBuilder都是继承于AbstractStringBuilder这个类,在这个类中有个变量char[] value;数组进行字符串内容的存储,变量是可变的,所以不用随时去分配空间,速度相对于String就会快;对于StringBuffer和StringBuffer两个类,在源码中由于StringBuffer中很多方法都被synchronized修饰,所以StringBuffer是线程安全的,也是由于这个原因,StringBuffer速度就相对于StringBuilder慢;
在我们操作比较少量的数据的时候可以使用String,如果数据在多个线程中共享,需要考虑到线程安全,可以使用StringBuffer;
以下为java中String常用的方法示例:
更多java学习方面的问题可以访问这个网页,网页链接,希望我的回答能帮到你。
3. java 如何定义字符串变量
一、使用 String 类定义:
在 Java 中每个双引号定义的字符串都是一个 String 类的对象。因此,可以通过使用 String 类的构造方法来创建字符串,该类位于 java.lang 包中,作用域是 final。
String 类的构造方法有多种重载形式,每种形式都可以定义字符串。下面介绍最常用的几种形式。
1、 String()
初始化一个新创建的 String 对象,表示一个空字符序列。
2、String(String original)
初始化一个新创建的 String 对象,使其表示一个与参数相同的字符序列。换句话说,新创建的字符串是该参数字符串的副本。
3、String(char[ ]value)
分配一个新的字符串,将参数中的字符数组元素全部变为字符串。该字符数组的内容已被复制,后续对字符数组的修改不会影响新创建的字符串。
4、String(char[] value,int offset,int count)
分配一个新的 String,它包含来自该字符数组参数一个子数组的字符。offset 参数是子数组第一个字符的索引,count 参数指定子数组的长度。该子数组的内容已被赋值,后续对字符数组的修改不会影响新创建的字符串。
4. java中如何将字符型转换字符串
java中有很多方法可以将字符型转化为字符串。
这是代码
package com.test;
public class Test {
public static void main(String[] args)throws Exception{
char a = 'a';
String str1 = a + "";
String str2 = String.valueOf(a);
String str3 = Character.toString(a);
Character b = 'b';
String str4 = b + "";
String str5 = String.valueOf(b);
String str6 = Character.toString(a);
String str7 = b.toString();
}
}
方法4:Characte类的toString方法
如果字符变量是包装类,还可以用Characte类的toString方法
String str7 = b.toString();
5. java字符串
12.4.4 String 和 StringBuffer 类
这里总结一下同时适用于 String 和 StringBuffer 的方法,以便对它们相互间
的沟通方式有一个印象。这些表格并未把每个单独的方法都包括进去,而是包含
了与本次讨论有重要关系的方法。那些已被覆盖的方法用单独一行总结。
首先总结 String 类的各种方法:
方法 自变量,覆盖 用途
构建器 已被覆盖:默认,String,StringBuffer,char 数组,byte 数组 创建
String 对象
length() 无 String 中的字符数量
charAt() int Index 位于 String 内某个位置的 char
getChars(),getBytes 开始复制的起点和终点,要向其中复制内容的数组,对
目标数组的一个索引 将 char 或 byte 复制到外部数组内部
toCharArray() 无 产生一个 char[],其中包含了 String 内部的字符
equals(),equalsIgnoreCase() 用于对比的一个 String 对两个字串的内容进行
等价性检查
compareTo() 用于对比的一个 String 结果为负、零或正,具体取决于 String
和自变量的字典顺序。注意大写和小写不是相等的!
regionMatches() 这个 String 以及其他 String 的位置偏移,以及要比较的区域
长度。覆盖加入了“忽略大小写”的特性 一个布尔结果,指出要对比的区域是
否相同
startsWith() 可能以它开头的 String。覆盖在自变量里加入了偏移 一个布尔
结果,指出 String 是否以那个自变量开头
endsWith() 可能是这个 String 后缀的一个 String 一个布尔结果,指出自变量
是不是一个后缀
indexOf(),lastIndexOf() 已覆盖:char,char 和起始索引,String,String 和起
始索引 若自变量未在这个 String 里找到,则返回-1;否则返回自变量开始处的
位置索引。lastIndexOf()可从终点开始回溯搜索
substring() 已覆盖:起始索引,起始索引和结束索引 返回一个新的 String
对象,其中包含了指定的字符子集
concat() 想连结的 String 返回一个新 String 对象,其中包含了原始 String 的
字符,并在后面加上由自变量提供的字符
relpace() 要查找的老字符,要用它替换的新字符 返回一个新 String 对象,
其中已完成了替换工作。若没有找到相符的搜索项,就沿用老字串
toLowerCase(),toUpperCase() 无 返回一个新 String 对象,其中所有字符的大
小写形式都进行了统一。若不必修改,则沿用老字串
trim() 无 返回一个新的 String 对象,头尾空白均已删除。若毋需改动,则沿
用老字串
valueOf() 已覆盖:object,char[],char[]和偏移以及计数,boolean,char,int,
long,float,double 返回一个 String,其中包含自变量的一个字符表现形式
Intern() 无 为每个独一无二的字符顺序都产生一个(而且只有一个)String
句柄
可以看到,一旦有必要改变原来的内容,每个 String 方法都小心地返回了一
个新的 String 对象。另外要注意的一个问题是,若内容不需要改变,则方法只返
回指向原来那个 String 的一个句柄。这样做可以节省存储空间和系统开销。
下面列出有关 StringBuffer(字串缓冲)类的方法:
方法 自变量,覆盖 用途
构建器 已覆盖:默认,要创建的缓冲区长度,要根据它创建的 String 新建
一个 StringBuffer 对象
toString() 无 根据这个 StringBuffer 创建一个 String
length() 无 StringBuffer 中的字符数量
capacity() 无 返回目前分配的空间大小
ensureCapacity() 用于表示希望容量的一个整数 使 StringBuffer 容纳至少希
望的空间大小
setLength() 用于指示缓冲区内字串新长度的一个整数 缩短或扩充前一个字
符串。如果是扩充,则用 null 值填充空隙
charAt() 表示目标元素所在位置的一个整数 返回位于缓冲区指定位置处的
char
setCharAt() 代表目标元素位置的一个整数以及元素的一个新 char 值 修改指
定位置处的值
getChars() 复制的起点和终点,要在其中复制的数组以及目标数组的一个索
引 将 char 复制到一个外部数组。和 String 不同,这里没有 getBytes()可供使用
append() 已覆盖:Object,String,char[],特定偏移和长度的 char[],boolean,
char,int,long,float,double 将自变量转换成一个字串,并将其追加到当前缓
冲区的末尾。若有必要,同时增大缓冲区的长度
insert() 已覆盖,第一个自变量代表开始插入的位置:Object,String,char[],
boolean,char,int,long,float,double 第二个自变量转换成一个字串,并插入
当前缓冲区。插入位置在偏移区域的起点处。若有必要,同时会增大缓冲区的长
度
reverse() 无 反转缓冲内的字符顺序
最常用的一个方法是 append()。在计算包含了+和+=运算符的 String 表达式
时,编译器便会用到这个方法。insert()方法采用类似的形式。这两个方法都能对
缓冲区进行重要的操作,不需要另建新对象。
12.4.5 字串的特殊性
现在,大家已知道 String 类并非仅仅是 Java 提供的另一个类。String 里含有
大量特殊的类。通过编译器和特殊的覆盖或过载运算符+和+=,可将引号字符串
转换成一个 String。在本章中,大家已见识了剩下的一种特殊情况:用同志
StringBuffer 精心构造的“不可变”能力,以及编译器中出现的一些有趣现象。
6. java中怎么进行字符串替换
使用replace方法
该方法的作用是替换字符串中所有指定的字符,然后生成一个新的字符串,例如:
String s = “abcat”;
String s1 = s.replace(‘a’,‘1’);
该代码的作用是将字符串s中所有的字符a替换成字符1,生成的新字符串s1的值是“1bc1t”,而字符串s的内容不发生改变。如果需要将字符串中某个指定的字符串替换为其它字符串,则可以使用replaceAll方法,例如:
String s = “abatbac”;
String s1 = s.replaceAll(“ba”,“12”);
该代码的作用是将字符串s中所有的字符串“ab”替换为“12”,生成新的字符串“a12t12c”,而字符串s的内容也不发生改变。
字符串在存储上类似字符数组
它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。
通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:
长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
7. JAVA中怎样输入字符串
1.首先,导入java.util.*包。
(7)cjava字符串扩展阅读:
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。
Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
8. Java中的字符串的问题
注意f1方法里的参数
都是拷贝一份传递。
但第一个参数是对象的引用。可以理解成一个共享网盘的路径,拷贝多少份都不影响找到这个网盘,然后网盘里就两个文件num和str,其他人修改num和str文件里的内容保存后,你去查看也能看到修改后的内容
后面的就是值的拷贝,修改不影响你手里的原件
至于最后的String类型的参数,你拷贝过去如果不修改,和原件是一样的。
看似你修改成了bcd
实则流程大概是。我要创建一个String类型的对象,值是bcd。然后看常量池里有没有bcd,没有那就new一个新的对象。但是只在f1方法里有效
下图就可以看出来,传递过去的时候hashcode是一致的,重新赋值后就改变了
9. java中字符串的是什么
java中的字符串是由多个字符组成的一串数据,字符串是常量,一旦被创建就不能改变,这是因为字符串的值是存放在方法区的常量池里面,但是引用可以改变。字符串字面值"ab"也可以看成是一个字符串对象。
10. java字符串问题
1.怎样比较字符串?用”==”还是用equals()?
简单地说,”==”测试两个字符串的引用是否相同,equals()测试两个字符串的值是否相同。除非你希望检查两个字符串是否是同一个对象,否则最好用equals()。
如果你知道字符串驻留机制会更好。
2.为什么对于安全性敏感的信息char[]要优于String?
字符串是不变的,这也就意味着字符串一旦被创建,它们将一直保持在那直到被垃圾回收器清理为止。而对于一个数组,你可以明确的修改它的元素。这样一来,安全性敏感信息(比如密码)将不会出现在系统的任何其它地方。
3.我们能不能在switch语句中使用String?
对于Java7答案是肯定的。从JDK7开始,我们可以使用String作为switch语句的条件。在JDK6之前,我们不能使用String作为switch语句的条件。